◼ PS Note/백준

[백준] 1065번 : 한수 (🥈실버 4) (Python)

SangYoonLee (SYL) 2023. 1. 21. 00:36
반응형

문제 바로 가기

 

1065번: 한수

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

www.acmicpc.net

 


풀이

  • 사용 언어 : Python
  • 풀이한 날짜 : 2021-09-18
# 방법 1:
def isSequence(num):    # num은 문자열
    if int(num[0]) - int(num[1]) == int(num[1]) - int(num[2]):
        return 1
    return 0

n = int(input())

count = 99

if n <= 99: print(n)
elif n <= 110: print("99")
elif n <= 999:
    for i in range(111, n+1):
        count += isSequence(str(i))
    print(count)
else: print("144")
# 방법 2: (map 이용, 모듈화)
def HanSu(n):
    cnt = 99
    if n <= 99: return n
    else:
        for i in range(100, n+1):
            num_lst = list(map(int, str(i)))
            if num_lst[0] - num_lst[1] == num_lst[1] - num_lst[2]:
                cnt += 1
        return cnt

n = int(input())
print(HanSu(n))

(예전에 기록해둔 풀이를 그대로 옮겨온 것이기에, 부가 설명이 없다는 점 양해 부탁드립니다.)

 

반응형