본문 바로가기

정보올림피아드지역예선

정보올림피아드 초등 - 지역예선] 2009년도 29번문제

반응형

 

 

29.영어 단어 “madam”이나 “radar”처럼 앞에서 뒤로 읽는 것이나 뒤에서 앞으로 읽는 것이 동일한 단어를 회문(palindrome)이라고 한다. 주어진 문자열이 회문인지를 판별하는 프로그램을 다음과 같이 작성하였다. 빈 칸에 들어갈 내용으로 알맞은 것은?

 

s[i] != s[n - i - 1]

s[i] != s[n - i]

s[i] != s[i + n / 2]

s[n / 2 - i] != s[n / 2 + i]

s[n / 2 - i - 1] != s[n / 2 + i]

 

문제풀이)

앞으로 읽는것과 뒤에서 읽는것이 동일 하기 위해서는

중간 지점을 기준으로 좌측과 우측으로 한칸씩 비교 하면 된다.

s 배열

 0

1

 2

3

 4

배열이 0 번지 부터 시작하는 s 가 있으며 길이 n 이 5 인 경우

s[0] != s[4] 이면 회문이 아니거나

s[1] != s[3] 이면 회문이 아니다.

이것을 문제와 같은 식으로 풀어 보면

for ( i = 0 ; i <= n/2 - 1;i++)

if ( s[i] != s[n - i - 1])  { 회문이 아니다 }

와 같은 식으로 나타낼 수 있다.

정답) 1번

 

 

반응형