티스토리 뷰

728x90
반응형

https://www.acmicpc.net/problem/1065

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

 

 

내 코드

def check(num):
    n = str(num)
    arr =[]
    flag=0
    for i in range(len(n)-1):
        if len(arr)==0:
            arr.append(int(n[i+1])-int(n[i]))
        else:
            if arr[0]!=int(n[i+1])-int(n[i]):
                flag=1
                return False
            
    if flag==0:
        return True
    
n = int(input())
sum=0
for i in range(1,n+1):
    if check(i):
        sum+=1
print(sum)

숫자를 문자열로 변환하고, 만약 arr이 비어있다면 다음 자릿수에서 현재 자릿수를 뺀 값을 arr에 넣어준다.

arr이 있다면, arr에 들어있는 값과 자릿값들의 차를 비교한다.

만약 arr에 들어있는 값과 차가 다르면, False를 리턴하고, 끝까지 비교했을 때 모두 동일하다면 True를 리턴한다.

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함