본문 바로가기

~2023/백준

백준 알고리즘 1065번: 한수 문제풀이 - Henry's Algorithm

반응형

 

www.acmicpc.net/problem/1065

 

1065번: 한수

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

www.acmicpc.net

 

 

각 자리수가 등차수열을 이루는 값을 한수라고 부르고

그 한수를 찾는 문제이다.

 

 

이번 문제를 통해서 새롭게 알게 된 사실은,

for문과 if문을 통해서 문제를 하나씩 해결하려고 하지 말고

보다 깔끔하고 간결한 코드를 짜는 연습을 해야한다는 것이다.

 

실제로 if문으로 조건 걸어서 풀어주려고 하니까 Human error가 발생했는지 문제를 풀 수 없었다.

 

그래서 python map 함수를 통해 간결한 코드를 작성할 수 있었다.

 

N = int(input())

hansu = 0

for i in range(1,N+1):
    if i <= 99:
        hansu += 1
    else:
        num_arr = list(map(int,str(i)))
        if num_arr[0] - num_arr[1] == num_arr[1] - num_arr[2]:
            hansu += 1
            
print(hansu)
반응형