문제
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 |
댓글