https://www.acmicpc.net/problem/1259
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net
[문제]
어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다.
'radar', 'sees'는 팰린드롬이다.
수도 팰린드롬으로 취급할 수 있다.
수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다.
121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다.
또한 10도 팰린드롬수가 아닌데,
앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.
[입력]
입력은 여러 개의 테스트 케이스로 이루어져 있으며,
각 줄마다 1 이상 99999 이하의 정수가 주어진다.
입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
[출력]
각 줄마다 주어진 수가 팰린드롬수면 'yes', 아니면 'no'를 출력한다.
[예제 입력 1]
121
1231
12421
0
[예제 출력 1]
yes
no
yes
내가 작성한 코드
while True:
number = input()
if number == "0":
break;
if number == number[::-1]:
print('yes')
else:
print('no')
결과
Tip) 문자열을 거꾸로 출력하는 방법
1. 파이썬에서 제공하는 reverse 함수를 사용한다.
- reverse는 list 타입에서 제공하는 함수이다.
- reverse는 값을 반환하지 않고, 단순히 해당 list를 뒤섞어주는 역할을 한다.
char = 'abcde' # 기본 문자열 생성
char_list = list(char) # reverse 함수를 이용하기 위한 리스트화
char_list.reverse() # reverse 함수 사용하여 문자열 리스트를 거꾸로 뒤집음
print(''.join(char_list)) # 역으로 전환된 문자열 출력
2. 파이썬에서 제공하는 reversed 함수를 사용한다.
- reversed는 내장 함수로, list에서 제공하는 함수가 아니다.
- reverse와 달리 문자열에도 바로 적용이 가능하다.
char = 'abcde'
print(''.join(reversed(char)))
3. array[::] 용법을 사용한다.
- 파이썬에서는 자주 사용하는 Extended Slices 기법이다.
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(arr[::2]) # 처음부터 끝까지 두 칸 간격으로 출력한다.
# [0, 2, 4, 6, 8]
print(arr[1::2]) # 첫번째 인덱스부터 끝까지 두 칸 간격으로 출력한다.
# [1, 3, 5, 7, 9]
print(arr[::-1]) # 처음부터 끝까지 -1칸 간격으로 출력한다(= 역순으로 출력)
# [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(arr[::-2]) # 처음부터 끝까지 -2칸 간격으로 출력한다(= 역순, 두칸 간격으로)
# [9, 7, 5, 3, 1]
print(arr[3::-1]) # 3번째 인덱스부터 끝까지 -1칸 간격으로 출력
# [3, 2, 1, 0]
print(arr[1:6:2]) # 첫번째 인덱스부터 여섯번째 인덱스까지 두 칸 간격으로 출력
# [1, 3, 5]
'문제풀이' 카테고리의 다른 글
[백준] 1546번 파이썬 풀이 (0) | 2022.03.15 |
---|---|
[백준] 1264번 파이썬 풀이 (0) | 2022.03.15 |
[코드업] (파이썬, C) 1155번 풀이 (0) | 2022.02.04 |
[코드업] (파이썬, C) 1154번 풀이 (0) | 2022.01.28 |
[코드업] (파이썬, C) 1153번 풀이 (0) | 2022.01.27 |