백준 1065 python
백준 1065
한수
문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
예제
110 -> 99
1 -> 1
210 -> 105
1000 -> 144
500 -> 119
코드
def solution(number):
if 0<=number<100:
return number
else:
count=99
for i in range(100,number+1):
if i ==1000:
break
a=int(i/100)
b=int((i%100)/10)
c=int(i%10)
if (a-b)==(b-c) :
count+=1
return count
number=int(input())
print(solution(number))
문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
예제
110 -> 99
1 -> 1
210 -> 105
1000 -> 144
500 -> 119
코드
def solution(number):
if 0<=number<100:
return number
else:
count=99
for i in range(100,number+1):
if i ==1000:
break
a=int(i/100)
b=int((i%100)/10)
c=int(i%10)
if (a-b)==(b-c) :
count+=1
return count
number=int(input())
print(solution(number))
def solution(number):
if 0<=number<100:
return number
else:
count=99
for i in range(100,number+1):
if i ==1000:
break
a=int(i/100)
b=int((i%100)/10)
c=int(i%10)
if (a-b)==(b-c) :
count+=1
return count
number=int(input())
print(solution(number))
한수는 0 ~ 99 즉 한자리와 두자리는 모두 한수이기 때문에 포함된다. (이유는 비교할 뒷대상이 없기때문)
따라서 100 이상부터 고려해야만한다.
따라서 아닌경우 해당경우를 나누고 1000이하이기때문에 1000일겨우 어짜피 한수도아니고 그냥 깨버리게끔 if문을 썼고 맨 앞자리 가운데 뒷자리를 만들고 앞뒤의 차이가 같을때만 카운트를 해준다.
Author And Source
이 문제에 관하여(백준 1065 python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@narangke3/백준-1065-python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)