꾸준히 합시다

백준 파이썬 1065번: 한수 본문

코딩 테스트 문제 풀이

백준 파이썬 1065번: 한수

tturbo0824 2021. 3. 7. 11:23

www.acmicpc.net/problem/1065

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

문제 유형: 브루트 포스

 

# Solution 1

n = int(input())

count = 0

for i in range(1, n+1):
    if i < 100:
        count += 1
    else:
        st = list(map(int, str(i)))
        if st[0] - st[1] == st[1] - st[2]:
            count += 1

print(count)

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 즉 1부터 99까지의 수는 모두 한수인 것이다. 그렇기에 만약 입력값이 세 자리 수 이하라면 한수의 개수는 자기 자신 + 1이 된다.

 

세 자리 수일 경우 파이썬의 map함수와 list를 사용해 수를 한 자리씩 쪼개 주어 각 자릿수의 차를 구한다. 첫 번째 숫자와 두 번째 숫자의 차와 두번째 숫자와 마지막 숫자의 차이가 같으면 count의 개수를 1씩 늘려준다.

 

Comments