[1259 | Python] 팰린드롬수
🎉문제 총평
흑흑 쉬운데 어려워 일주일 쉬었더니 뇌가 굳은것같다 더 정진할것
🎉조건
앞부터 읽어도, 뒤부터 읽어도 똑같은 숫자를 팰린드롬수라고 한다.
여러개의 숫자 입력시 각 수가 팰린드롬수인지 판단하자.
팰린드롬수인 경우 yes를, 아닌 경우 no를 출력하라.
🎉접근방식
처음에 인덱싱을 사용하려다가 실패해서 reverse 함수로 접근.
reverse 함수만 사용하면 쉽게 뒤집을 수 있다고 생각했는데 reverse를 사용하니 str이나 int가 아니라 reverse 형태였다.
그래서 추가적으로 list()랑 join을 사용해야 했다.
🎉try1: 틀렸습니다!
# 1259
num1 = input()
num_list = list(reversed(num1)) # num1을 순서 뒤집고 리스트화하기
num2 = int(''.join(num_list)) # 리스트 내용들 합쳐서 하나의 str로 바꾼 뒤 int형으로 바꾸기
if int(num1) == num2:
print("yes")
else:
print("no")
하나의 입력만 처리해서 그런가?
while문을 사용해서 바꿨다.
🎉try2: solved!
# 1259
while True:
num1 = input()
num_list = list(reversed(num1))
num2 = int(''.join(num_list))
if num1 == "0":
break
if int(num1) == num2:
print("yes")
else:
print("no")
두번만에 해결!😊
사실 중간에 if 문 때문에 좀 헤맸다.
if int(num1) == num2:
print("yes")
elif num1 == "0":
break
else:
print("no")
처음에 위에처럼 작성했는데 0 입력해도 안끝나서 뭐지?했다.
다시 생각해보니깐 위의 if문에서 이미 yes를 출력하게 되기에 elif문이 돌지 않았던 것...
🎉 another code
나는 10줄정도 썼는데 다른 더 깔끔한 코드가 있나 검색을 해보았다.
당연히 있다. 바로 내가 처음에 생각했던 인덱싱을 이용한 코드.
while(True):
a = input()
if a == "0":
break
elif a == a[::-1]:
print("yes")
else:
print("no")
나는 num[:,:,-1] 이런식으로 작성하다가 안되서 reversed 함수를 사용한건데 걍 문법 오류였다.
기본 문법을 튼튼히하고 머리아프다고 다음 방식으로 넘어가는 게 아니라 오류 원인을 찾아보는 태도가 필요할 듯 싶다.😥
코드 출처
'프로그래밍 > BOJ_Python 목표는 Diamond' 카테고리의 다른 글
[Python | 11050] 이항계수 (0) | 2023.11.28 |
---|---|
[1181 | python] 단어 정렬 (0) | 2023.08.01 |
[2566 | Python] 최댓값 (0) | 2023.07.15 |
[2475, 2920, 10172 | python] 검증수, 음계, 개 (0) | 2023.07.13 |
[27866 | Python] 문자와 문자열 (1) | 2023.07.13 |