안녕하세요.
이번 문제는 백준 1259 팰린드롬수 입니다. 회문과 비슷한 문제겠네요. (소주만병만주소 와 같은..)
파이썬으로 풀어보겠습니다.
링크는 아래와 같습니다.
https://www.acmicpc.net/problem/1259
풀이
파이썬을 이용하면 짧고 간단하게 풀 수 있습니다.
리스트 슬라이싱을 이용해서, [::-1] 과 같은 형태면 역순정렬된 리스트가 나오기 때문입니다.
reverse를 이용해서 같은지 비교해도 되겠습니다.
import sys
while True:
n = int(sys.stdin.readline())
if n <= 0:
break
word = list(str(n)) # 숫자를 한 자리씩 리스트에 저장
if word == word[::-1]: # 리스트와 리스트(역순)이 같은지 검사
print('yes')
else:
print('no')
슬라이싱 방법 말고 다른 방법으로도 풀어보면,
앞에서 부터 하나하나 비교하는 방법을 이용해도 되겠습니다.
i는 0번부터, j는 마지막 인덱스부터 시작해서
i가 j보다 작은 동안,
i 번째와 j 번째가 같은지 검사하면 되겠지요?
파이썬 코드로 적어보면 이럴 것입니다.
import sys
while True:
n = int(sys.stdin.readline())
if n <= 0:
break
word = list(str(n)) # 숫자를 한 자리씩 리스트에 저장
i, j = 0, len(word)-1
flag = 1
while i <= j:
if word[i] != word[j]: # 글자가 다르다면
flag = 0
print('no')
break
i += 1
j -= 1
if flag : print('yes')
감사합니다.
'백준 문제풀이 > 문자열' 카테고리의 다른 글
백준 1181 Python / 단어 정렬 / 실버5 (1) | 2023.02.04 |
---|