Base/Algorithm Study

[Python/파이썬] 백준 알고리즘 1065번 - 한수

koh1018 2021. 8. 15. 00:30
반응형

 

 

 

<풀이>

N = int(input())

if N < 100: # 1~99는 다 한수
    print(N)
else:
    cnt = 0
    for i in range(100, N + 1):
        i = list(map(int, str(i)))
        if i[0] - i[1] == i[1] - i[2]:
            cnt += 1
    print(99 + cnt)

입력값 N이 100보다 작다면 1~99는 다 한수이므로 그대로 출력한다.

만약 100보다 크다면 100부터 N까지 for문을 돌며 각 자리수가 등차수열을 이루는 지 확인하고 등차수열을 이룬다면(한수라면) cnt를 하나 증가시킨다.

그리고 그 cnt에 1~99를 포함하는 99를 더해 출력한다.

 

 

 

<핵심 정리>

1. 정수 n의 각 자리수를 쪼개 리스트로 만들고 싶다면 list( map(int, str(n)) )하면 된다.

2. 등차수열 확인할 때는 두 수를 뺀 값을 비교하면 된다.

반응형