티스토리 뷰

Problem Solving/SWEA

[SWEA 1215] 회문1 C++

유자애옹 2021. 7. 28. 16:44
 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

문제풀이

 

"기러기" 또는 "level"과 같이 거꾸로 읽어도 앞에서부터 읽은 것과 같은 문장이나 낱말을 회문(palindrome)이라 한다.

주어진 8x8 평면 글자판에서 가로, 세로를 모두 보아 제시된 길이를 가진 회문의 총 개수를 구하는 문제다.

 

 

제시된 길이만큼의 문자들이 회문인지 확인하기 위해서는 n - len 이하까지만 탐색해주면 된다.

이해하기 쉽도록 길이가 4인 회문을 찾는 예제를 그림으로 살펴보자.

 

보라색 박스는 회문 시작 위치, 노란색 박스는 회문 검사를 하는 문자열을 의미한다.

가로 검사를 할 때에는 0부터 7번 행까지 모두 검사를 진행해주어야 하고 시작 위치는 0부터 n - len인 4번 열까지 가능하다.

세로 검사를 할 때에는 0부터 7번 열까지 모두 검사를 진행해주어야 하고 시작 위치는 마찬가지로 0부터 n - len인 4번 행까지 가능하다.

 

코드로 작성해보면 다음과 같다.

 

 

 

C++ 코드

 

 

'Problem Solving > SWEA' 카테고리의 다른 글

[SWEA 1217] 거듭 제곱 C++  (0) 2021.07.28
[SWEA 1216] 회문2 C++  (0) 2021.07.28
[SWEA 1213] String C++  (0) 2021.07.28
[SWEA 1220] Magnetic C++/Java  (0) 2021.07.28
[SWEA 1210] Ladder1 C++/Java  (0) 2021.07.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함