[Python] 백준알고리즘 #1259

r1verfuture·2022년 1월 14일
0

백준알고리즘

목록 보기
96/110

📝 문제

어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.
수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.

⌨️ 입력

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

🖨 출력

각 줄마다 주어진 수가 팰린드롬수면 'yes', 아니면 'no'를 출력한다.

⌨️ 예제 입력

121
1231
12421
0

🖨 예제 출력

yes
no
yes

📚 내가 제출한 코드

import sys
while True:
    num = sys.stdin.readline().rstrip()
    if num == '0':
        break
    numArr = list(num); length = len(numArr) // 2
    if len(numArr) % 2 == 1:
        del numArr[length]
    front = numArr[:length]; back = numArr[-1 : length - 1 : -1]
    result = 'yes'
    for i in range(length):
        if front[i] != back[i]:
            result = 'no'
            break
    print(result)

✏️ 내가 제출한 코드에 대한 설명

  • sys.stdin.readline() : 키보드로 입력한 값을 받는 함수 (기존의 input() 보다 속도가 훨씬 빠르다.)
  • sys.stdin.readline().rstrip() : 기존의 input() 이랑 다르게 sys.stdin.readline() 은 개행 문자까지 입력으로 받기 때문에 개행 문자를 제거해주는 코드를 따로 써줘야 한다. 개행 문자 제거하는 함수가 rstrip() 이다.
  • len(a) : 리스트 a의 크기 (요소 개수)
  • del a[b] : 리스트 a의 index가 b인 원소를 삭제한다.
  • a[:b] : 리스트 a의 index가 0인 원소부터 b-1인 원소까지를 반환한다.
  • a[b : c : d] : 리스트 a의 index가 b인 원소부터 c-1인 원소까지 d씩 증가시키면서 반환한다.
  • range(a) : 0부터 a-1까지의 정수를 반환하는 함수
  • 메모리 : 30864 KB
  • 시간 : 68 ms
  • 코드 길이 : 407 B
profile
#iOS #Swift #Developer #Python

0개의 댓글