본문 바로가기
IT/알고리즘

1일 1알고리즘 - #7

by Sungjun_ 2020. 5. 15.

문제

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

 

1065번: 한수

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

www.acmicpc.net

문제는 위 사이트를 참고해주세요.

 


풀이

x = int(input())  
count = 0  # 숫자가 한수일 때마다 값을 1올려줌
for num in range(1, x+1):  # 범위를 1부터 x까지로 하면 최종 x의 값을 num에 포함안하기 때문에 +1에서 포함하게 만든다.
    if num < 100:  # 두 자리 이하의 수들은 무조건 한수이기 때문에 무조건 +1을 해준다.
        count += 1  # 한수일 때마다 +1
    else:  # 자리 수가 세자리 이상 일 때
        strNum = list(map(int, str(num)))  # 숫자가 들어오면 각 자리 별로 배열에 저장, ex) num = 100이면 -> [1, 0, 0] 이렇게 저장
        if strNum[0] - strNum[1] == strNum[1] - strNum[2]:  # 각 자리 수의 차 값이 같으면 +1
            count += 1
print(count)

 

주석을 참고해주세요.

 


결과

결과 화면

 

'IT > 알고리즘' 카테고리의 다른 글

1일 1알고리즘 - #9  (0) 2020.05.15
1일 1알고리즘 - #8  (0) 2020.05.15
1일 1알고리즘 - #6  (0) 2020.05.15
1일 1알고리즘 - #5  (0) 2020.05.14
1일 1알고리즘 - #4  (0) 2020.05.14

댓글