1259: 팰린드롬수 - Python

beaver.zip·2024년 12월 4일
0

[알고리즘] 백준

목록 보기
11/45

문제

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

풀이 1

while True:
    n = input()
    l = len(n)
    if n == "0": break
    elif l % 2 == 0 and n[:l//2] == n[l//2:][::-1]:
            print("yes")
    elif l % 2 == 1 and n[:l//2] == n[l//2+1:][::-1]:
            print("yes")
    else:
          print("no")

바보같이 처음에는 입력의 길이가 홀수일 때와 짝수일 때 다르게 풀어야 하는 줄 알았다.
위 코드의 elif문을 하나로 합치면 다음과 같다.

while True:
    n = input()
    l = len(n)
    if n == "0": break
    elif n[:l//2] == n[l//2+l%2:][::-1]:
         print("yes")
    else:
         print("no")

l % 2를 이용해 홀수, 짝수일 때 모두 대응하도록 했다.

while True:
    n = input()
    if n == "0": break
    l = len(n)
    print("yes" if n[:l//2] == n[l//2+l%2:][::-1] else "no")

삼항 연산자를 이용해 더 간결화했다.

풀이 2

while 1:
    n = input()
    if n == "0": break
    print("yes" if n == n[::-1] else "no")

정신을 차리고 다시 풀었다.


코멘트

  • 코드 줄일 생각만 하지 말고, 옳은 로직인가를 먼저 생각하자.
profile
NLP 일짱이 되겠다.

0개의 댓글