[Python] [백준 #1065] 한수

9169 단어 python함수bojboj

문제

1065

풀면서 하는 생각

  1. 입력과 출력을 작성
num = int(input())
print(Han(num))
  1. 1~99는 한수이므로 if 작성
def Han(num):
    if num < 100:
        return num


num = int(input())
print(Han(num))
  1. 100 이상부터는 한수가 99개(1~99) 이상이므로
def Han(num):

    if num < 100:
        return num
    else:
        cnt = 99


num = int(input())
print(Han(num))
  1. 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 함수를 알아냈다. 좋은 함수를 알아낸 것 같아 기분이 좋다.

좋은 웹페이지 즐겨찾기