본문 바로가기

코딩테스트

[백준] 1065번 : 한수

728x90
반응형

https://www.acmicpc.net/problem/1065

 

1065번: 한수

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

www.acmicpc.net

언어는 파이썬을 사용했습니다.

 

 

def hansu(n:int) -> int:
    if n >= 100:
        h_num = 99
    else:
        h_num = n
        return h_num
    for i in range(100,n+1):
        s = str(i)
        l = len(s)
        if l == 3 and (int(s[2]) - int(s[1]) == int(s[1]) - int(s[0])):
            h_num += 1
        elif l == 4 and (int(s[3]) - int(s[2]) == int(s[2]) - int(s[1]) == int(s[1]) - int(s[0])):
            h_num += 1
  
    return h_num
  
  

if __name__ == '__main__':
  n = int(input())
  print(hansu(n))

문제를 확인했을 때 든 생각은 '한 자리수와 두자리 수는?' 이었다.

 

예제 입출력을 보니 1을 입력했을 때 1을 출력하는 것을 확인했고, 힌트를 얻어

 

100보다 작은 입력은 입력값을 출력하게 설계하였다.

 

처음 풀어 본 실버문제!

반응형