반응형
문제
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
코드
N = int(input())
sequence_num = set()
for i in range(1,N+1):
num = str(i)
if len(num) <= 2:
sequence_num.add(i)
elif len(num) == 3:
if (int(num[1])-int(num[0])) == (int(num[2])-int(num[1])):
sequence_num.add(i)
else:
continue
else:
exit
print(len(sequence_num))
설명
우선 n을 입력받고, 등차수열을 이루는 수를 넣어줄 sequence_num을 만들어준다.
이때, set으로 만들어주어 중복을 피한다.
n까지의 반복문을 만들어서 수를 확인해야 하는데,
1000보다 작은 자연수 중 2자리의 자연수는 무조건 등차수열 이므로 무조건 등차수열 리스트에 넣어준다.
이후 3자리의 자연수 중 두 번째 자리에서 첫 번째 자리를 뺀 값이 세 번째 자리에서 두 번째 자리를 뺀 값과 같으면 등차수열이므로 리스트에 추가해준다.
이후 sequence_num의 개수를 출력해준다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 2292: 벌집 (0) | 2022.12.13 |
---|---|
[파이썬, Python] 백준 1712: 손익분기점 (0) | 2022.12.12 |
[파이썬, Python] 백준 4673: 셀프 넘버 (0) | 2022.12.10 |
[파이썬, Python] 백준 15596: 정수 N개의 합 (2) | 2022.12.09 |
[파이썬, Python] 백준 1316: 그룹 단어 체커 (0) | 2022.12.08 |