백준 1259번 바로가기

나의 풀이

import sys

for n in sys.stdin:
  n = n.strip()
  if n == '0':
    break
  else:
    if n != n[::-1]:
      print('no')
    else:
      print('yes')

고수의 풀이

while int(s:=input()):print(['no','yes'][s==s[::-1]])

출처

CODE REVIEW

  1. 소수와 더불어 단골소재 팰린드롬수! 자신과 자신의 거울상이 동일한지를 살펴보면 되니까 nn[::-1]을 비교하면 된다.
  2. 고수의 풀이를 살펴보다가 print()의 새로운 기능을 알게 되었다.
    • print(['no', 'yes'][조건문])인데 조건문 안의 내용이 True이면 두번째 요소인 ‘yes’를, False라면 첫번째 요소인 ’no’를 출력해준다.
    • if문을 사용하지 않아도 되어서 간결해진다.
  3. :=바다코끼리 연산자(the walrus opeator)라고도 불리는데 같은 것을 여러번 호출하지 않아도 되도록 도와주는 연산자이다. documentation에 따르면 다음과 같을 때 유용하게 사용할 수 있다.
if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

-> len()을 두 번 호출하지 않아도 됨!