안경잡이 구루루

백준 10988 (팰린드롬인지 확인하기) [Python/파이썬] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 10988 (팰린드롬인지 확인하기) [Python/파이썬]

구루루(gururu) 2023. 8. 29. 09:37
반응형

https://www.acmicpc.net/problem/10988

 

10988번: 팰린드롬인지 확인하기

첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

www.acmicpc.net

 


나:

word = input()
for i in range(len(word)//2+1):
  if word[i] == word[len(word)-1-i]:
    result=1
  else:
    result=0
    break
print(result)

완성된 코드는 위와 같다.

입력값으로 단어가 주어지기 때문에 input으로 문자열 형태의 입력을 받았다.

팰린드롬인지 아닌지 파악하기 위해 반복문 for 이용해 절반 기준 포개어 질 때 같은지 아닌지 확인했다.

왜냐하면 최소한의 반복으로 코드를 실행하기 위해 절반 기준으로 양옆의 문자가 같은지 확인하는 것이 유리.

단어 길이가 짝수 일때는 문자끼리 비교할 짝이 반드시 존재하고 홀수 일때는 중앙에 해당하는 문자는 짝이 없음에 주의해서 코드를 작성.  그리고 range는 끝자리는 포함하지 않기 때문에  +1을 시켜줬다.

이때 앞뒤가 같지 않은 부분이 발견되면 그 뒤는 확인할 필요가 없기 때문에 그 즉시 break로 반복문을 끝내고 result 결과값을 출력한다.

 


다른사람:

ex_1  :  https://claude-u.tistory.com/233

word = list(str(input()))

if list(reversed(word)) == word:
    print(1)
else:
    print(0)

완성된 코드는 위와 같다.

주목할 부분은 내가 위에서 앞 뒤로 같은지 아닌지 확인하는 그 과정을 reversed() 함수로 한줄에 표현한 부분이다,

즉, 구지 앞과 뒤가 같은지 아닌지 하나씩 확인할 필요 없이 거꾸로 만든 최종적인 결과와 원래 단어와 거꾸로인지 확인한 점이다.

 

ex_2 : https://my-coding-notes.tistory.com/180

a = input()
print(1 if a==a[::-1] else 0)

완성된 코드는 위와 같다.

주목할 부분은 나와 같은 인덱싱 방법을 사용하되 -1로 쉽게 입력받은 단어를 거꾸로 표현한점이다.

반응형