반응형
문제
https://www.acmicpc.net/problem/1259
초기 코드
while True:
n = input()
# 0이면 종료
if n == '0':
break
# 팰린드롬인지 확인
a = 0
for i in range(len(n)//2):
if n[i] == n[-(i+1)]:
continue
else:
print("no")
a = 1
break
if(a == 0):
print("yes")
입력된 수를 앞뒤로 어떻게 비교할 것인지가 관건인 문제이다.
for문을 통해 n의 각 문자열 앞뒤를 비교하였고, a를 통해 마지막 yes만 출력되게 하였다.
하지만 슬라이싱을 활용한다면 훨 간결한 코드로 풀 수 있다.
최종 코드
while True:
n = input()
# 0이면 종료
if n == '0':
break
# 팰린드롬인지 확인 (문자열 슬라이싱 사용)
if n == n[::-1]:
print("yes")
else:
print("no")
좀 더 파이썬의 특징을 살려서 풀어보았다.
원본 문자열과 뒤집은 문자열이 같은지만 비교하면 반복문이나 a와 같은 상태 변수 없이 작성이 가능하다.
반응형
'개발 > 코테 준비' 카테고리의 다른 글
| [Coding Test][Python] 백준 2775번: 부녀회장이 될테야 (0) | 2026.03.14 |
|---|---|
| [Coding Test][Python] 백준 2609번: 최대공약수와 최소공배수 (0) | 2026.03.13 |
| [Coding Test/Python] 백준 15829번: Hashing (0) | 2026.03.11 |
| [Coding Test/Python][Programmers] n 번째 원소까지 (0) | 2026.02.17 |
| [Coding Test/Python][Programmers] 카운트 업 (0) | 2026.02.17 |