문제

 

참고한 코드
def make_hansu(x):
    hansu_cnt = 0
    for i in range(1, x+1):
        num_l = list(map(int, str(i)))
        if i < 100:
            hansu_cnt += 1
        else:
            if num_l[0] - num_l[1] == num_l[1] - num_l[2]:
                hansu_cnt += 1        
    return hansu_cnt

n = int(input())
print(make_hansu(n))

> 아이디어는 같았는데, 세부적인 코드의 차이가 에러 여부를 결정하는거 같다!! 

> list(map(int, str(i)) : 이 코드를 작성하지 못해서 계속 에러가 났었다 ㅜㅜ 

> 참고한 블로그

https://ooyoung.tistory.com/65

 

백준 알고리즘 1065 [파이썬] : 한수 _ 등차수열

[Python] 백준 알고리즘 온라인 저지 1065번 : 한수 Python3 코드 1) def 함수를 생성한 경우 def hansu(num) : hansu_cnt = 0 for i in range(1, num+1): num_list = list(map(int,str(i))) if i < 100: hans..

ooyoung.tistory.com

 

코드 설명

> 블로그에는 def 함수를 생성한 경우와 생성하지 않은 경우가 있는데 저는 함수를 생성한 경우를 참고했습니다. 코드는 크게 다른게 없습니다.

> hansu_cnt 변수는 결과값을 출력하기 위한 한수 개수를 세는 변수입니다.

> 반복문을 통해서 1부터 입력된 수까지 반복을 진행합니다.

> 100 미만은 무조건 한수이기 때문에 if 문을 통해서 hansu_cnt 변수를 계속 1을 추가합니다.

> 여기서 else 문 혹은 elif 문을 적지 않고 또다른 if 문으로 적용할 시에는 에러가 발생합니다.

> num_l 변수는 각 수의 자리 수를 하나하나 나눠서 리스트에 담아둔 변수입니다. 세 자리 이상일 시에는, 첫 째 자리와 둘째자리에 차이와 둘째 자리와 셋 째자리에 차이가 같을 때 한수이기에 다음과 같이 설정하였습니다.

> 아이디어를 생각해내는데 시간이 오래걸리고, 문제를 이해하는데 시간이 굉장히 오래걸린다.... 나는 바보...

+ Recent posts