[python] 한수
문제 설명
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
풀이
입력받은 수만큼 반복문을 돌려서 한수의 개수를 더해준다.
1~99까지는 세 자리수 미만이므로 무조건 한수로 해당되므로 무조건 +1씩 더해줌.
그 이상부터는 숫자를 문자열로 만들어 나눠주고 각 자리수의 차이가 같은지 판별한다.
입력받는 n의 최댓값이 1,000이므로 2번째자리까지만 체크하면 ㅇㅋ
그렇게 더해서 나온 값을 출력하면 된다.
제출 코드
n = int(input())
def hansu(num):
cnt = 0
for i in range(1, num+1):
if i < 100:
cnt += 1
else:
nums = list(map(int,str(i)))
if nums[0] - nums[1] == nums[1] - nums[2]:
cnt += 1
return cnt
print(hansu(n))
Author And Source
이 문제에 관하여([python] 한수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@haremeat/python-한수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)