쉬운 문젠데 헤매네 ㅎㅎ
https://www.acmicpc.net/problem/1259
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net
- 여기서 팰린드롬 풀 때, 문자열 길이가 홀수일 때, 짝수일 때로 나눠서 그 문자열 길이의 반으로 나눠서 그 앞과 그 뒤를 나누고, 둘 중 하나를 거꾸로 한 다음 그 두개가 같은지 비교했다
- 하지만, 그럴 필요가 없다 ㅎ. 애초에 설명해놓은 것도 어떻게 풀어 써야할지 ㅎㅎ;;
- 어차피 팰린드롬수이면 거꾸로 문자를 뒤집어도 짝수일땐 문제 없고, 홀수여도 하나 남는 수가 주축이 되니까 굳이 첫번째처럼 나눌 필요가 없어진다
- 그치만, 이 두 방법은 메모리, 시간에 차이가 없다
while True:
num = input()
if num == '0': # stringㅇ로 받으면 string으로 받아야지,,
break
# 방법 1.
# 팰린드롬이기 때문에 반을 나누고 앞 뒤로 같은지 확인하면 됨
# n = (len(num) //2)
# a = num[:n]
# if len(num) % 2 == 0: # 짝수일때
# reverse = num[n:]
# else: # 홀수일때
# reverse = num[n+1:]
# if a == reverse[::-1]:
# print("yes")
# else:
# print("no")
# 방법2.
# 굳이 홀수,짝수 안나눠도 됨
# 그냥 입력받은 문자를 뒤집어서 같은지만 확인하면 됨,,ㅎ
# 근데 방법 1이랑 메모리, 시간 별로 차이 안남
if num == num[::-1]:
print("yes")
else:
print("no")
'Algorithm_PYTHON' 카테고리의 다른 글
| [백준_파이썬]1357_뒤집힌 덧셈 (0) | 2021.09.15 |
|---|---|
| [백준_파이썬]10610_30 (0) | 2021.09.11 |
| [백준_파이썬]2570번_계단 오르기 (0) | 2021.08.28 |
| [백준_파이썬]1463번_1로 만들기 (0) | 2021.08.28 |
| [백준_파이썬]2839번_설탕배달 (0) | 2021.08.28 |