[Python] [백준 #1065] 한수
문제
풀면서 하는 생각
- 입력과 출력을 작성
num = int(input())
print(Han(num))
- 1~99는 한수이므로 if 작성
def Han(num):
if num < 100:
return num
num = int(input())
print(Han(num))
- 100 이상부터는 한수가 99개(1~99) 이상이므로
def Han(num):
if num < 100:
return num
else:
cnt = 99
num = int(input())
print(Han(num))
- 100 이상인 경우 (백의자리수-십의자리수)와 (십의자리수-일의자리수) 를 비교해야하므로
def Han(num):
if num < 100:
return num
else:
cnt = 99
for i in range(100, num+1):
num_list = list(map(int, str(i)))
if num_list[0] - num_list[1] == num_list[1] - num_list[2]:
cnt += 1
return cnt
num = int(input())
print(Han(num))
제출한 코드
def Han(num):
if num < 100:
return num
else:
cnt = 99
for i in range(100, num+1):
num_list = list(map(int, str(i)))
if num_list[0] - num_list[1] == num_list[1] - num_list[2]:
cnt += 1
return cnt
num = int(input())
print(Han(num))
결과
처음에 문제이해를 잘못해서 너무 어렵게 봤다가... 검색하고 잘못 이해했다는 걸 깨달았다. 제대로 이해 후 차근차근 접근했는데 코드가 좀 길어져서 다른 사람의 코드를 찾아보던 도중 map 함수를 알아냈다. 좋은 함수를 알아낸 것 같아 기분이 좋다.
Author And Source
이 문제에 관하여([Python] [백준 #1065] 한수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soogyeong0726/Python-백준-1065-한수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)