IT
백준 파이썬 알고리즘 연습 - 1065 한수
rimicode
2022. 8. 9. 14:19
728x90
반응형
SMALL
x가 한수인지 판별하는 함수 정의하는 문제
문제
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수 출력
def hansu(sum):
hansu_cnt = 0
for i in range(1, num+1):
num_list = list(map(int, str(i)))
if i < 100:
hansu_cnt += 1 # 100보다 작으면 모두 한수
elif num_list[0] - num_list[1] == num_list[1] - num_list[2]:
hansu_cnt += 1 # x의 각 자리가 등차수열이면 한수
return hansu_cnt
num = int(input())
print(hansu(num))
한수: 각 자리수들이 등차수열을 이루는 수
num: 입력받은 숫자를 선언한 변수
range 함수: 숫자 범위 생성
숫자는 각 자릿수 숫자로 분리할 수 없다.
따라서 for 문 변수 i를 str 함수를 이용해 문자열로 변환시키고 각 자릿수를 분리해서 다시 int 타입으로 변환
1 ~ 99는 모두 한수
i가 100보다 작은 경우 모두 hansu라는 변수에 더하고,
100 이상인 경우 3자리 숫자를 앞의 두 자리 차이와 뒤의 두 자리 차이가 같으면 hansu
728x90
반응형
LIST