문제

참고한 코드
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 변수는 각 수의 자리 수를 하나하나 나눠서 리스트에 담아둔 변수입니다. 세 자리 이상일 시에는, 첫 째 자리와 둘째자리에 차이와 둘째 자리와 셋 째자리에 차이가 같을 때 한수이기에 다음과 같이 설정하였습니다.
> 아이디어를 생각해내는데 시간이 오래걸리고, 문제를 이해하는데 시간이 굉장히 오래걸린다.... 나는 바보...
'Coding > 백준' 카테고리의 다른 글
| [11720번] 문자열 - 숫자의 합 with Python (0) | 2022.07.19 |
|---|---|
| [11654번] 문자열 - 아스키 코드 with Python (0) | 2022.07.19 |
| [4673번] 함수 - 셀프 넘버 (어려움) (0) | 2022.07.18 |
| [15596번] 함수 - 정수 N개의 합 (0) | 2022.07.18 |
| [4344번] 1차원 배열 - 평균은 넘겠지 (0) | 2022.07.18 |