-
백준 1065번 - 한수BOJ-Algorithm 2022. 1. 9. 01:10
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
n = int(input()) arr = [i for i in range(1, n+1)] count = 0 for num in arr: text = str(num) flag = True if len(text)<2: flag = True else: diff = int(text[0])-int(text[1]) for j in range(1, len(text)): if diff!=int(text[j-1])-int(text[j]): flag = False count += flag print(count)
arr에 1부터 n을 포함한 범위까지의 수 리스트를 만들어 주고
각 숫자별로 숫자를 우선 텍스트화 시킨 뒤, 이 수가 한수인지 아닌지를 구별해주는 flag를 생성한다.
일단 숫자가 한 자리면 무조건 한수이므로, 길이가 2보다 작은 텍스화된 수는 한수 처리한다.
그 외에는 우선 맨 앞자리와 그 다음자리의 수의 차를 diff로 설정한 뒤에, 해당 diff와 숫자의 차이가 같지 않다면 등차수열이 아니므로 한수가 아니게 된다. 이 경우 flag를 false로 변경한다.
count에 True를 더하면 +1이 되고, false를 더하면 +0이 되어 반복문이 완료되었을 때 True의 수를 파악할 수 있다.
이후 count를 출력한다.
'BOJ-Algorithm' 카테고리의 다른 글
백준 1764 - 듣보잡 (0) 2022.01.09 백준 1676 - 팩토리얼 0의 개수 (0) 2022.01.09 백준 4949 - 균형잡힌 세상 (0) 2022.01.04 백준 10773 - 제로 (0) 2022.01.04 백준 9102번 - 괄호 (0) 2022.01.03