728x90
반응형
문제출처: https://www.acmicpc.net/problem/1065
1. 등차수열
숫자와 숫자의 사이의 간격이 동일한 숫자의 나열. 두 자리 숫자는 등차수열인지 비교대상이 없기 때문에 모두 한수 세자리 숫자는 각 자리의 숫자 간격이 동일하면 한수
함수를 사용하지 않은 풀이
hansu = 0
num = int(input()) # N은 1000보다 작은 수 (세자리 수)
for i in range(1, num+1):
if i < 100:
hansu += 1 # 100 미만 숫자는 모두 한수
else :
n = list(map(int,str(i)))
if n[2]-n[1] == n[1]-n[0]: #자리 수 비교가 같을때 hansu +1
hansu += 1
print(hansu)
함수를 사용하지 않아 다른 분들의 코드를 참고함.
def hansu(num) :
hansu_cnt = 0
for i in range(1, num+1):
num_list = list(map(int,str(i))) # 숫자 한 자리씩 list형으로 저장
if i < 100:
hansu_cnt += 1 # 100보다 작으면 모두 한수
elif num_list[0]-num_list[1] == num_list[1]-num_list[2]:
hansu_cnt += 1 # x의 각 자리가 등차수열이면 한수
return hansu_cnt
num = int(input())
print(hansu(num))
https://ooyoung.tistory.com/65
반응형
댓글