알고리즘/python
[python/파이썬] 백준 1065 한수
ㅌㅇㄴ
2022. 9. 15. 15:27
반응형
[문제 출처]
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
[문제 풀이]
한수인지 아닌지 판단하는 함수를 작성하여 문제를 해결하였다.
10 미만의 숫자라면 무조건 한수이기 때문에 1을 반환하고 아닌 경우는 한수인지 아닌지 판단해야 한다.
10 이상일 경우 for문을 통해 i번째와 i+1번째의 차를 구하고
이전에 구한 차와 동일하지 않다면 0을 반환하여 반복문을 멈춘다.
n을 입력받고 1부터 n까지 한수인지 아닌지 확인하여 카운팅 한다.
def isHansoo(num):
s = str(num)
if len(s) == 1:
return 1
else:
diff = int(s[0]) - int(s[1])
for i in range(len(s)-1):
if diff != (int(s[i]) - int(s[i+1])):
return 0
return 1
n = int(input())
cnt = 0
for i in range(1, n+1):
if isHansoo(i) == 1:
cnt += 1
print(cnt)
반응형