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