Python/백준 알고리즘
[백준][Python3] #1065. 한수
2nan
2023. 1. 14. 17:21
728x90
코드 입력
def hansu(n):
list_hansu = []
for i in range(1, n+1):
if i < 100:
list_hansu.append(i)
elif 100 <= i < 1000:
hun_quo = i // 100
ten_quo = (i % 100) // 10
remainder = (i % 100) % 10
diff_hunten = hun_quo - ten_quo
diff_tenrmd = ten_quo - remainder
if diff_hunten == diff_tenrmd:
list_hansu.append(i)
return len(list_hansu)
num = int(input())
print(hansu(num))
등차수열에 관한 문제이다.
등차수열의 경우에는, 공차(연속된 두 개의 수의 차이)가 일정하기 때문에 해당 기준이 같은 친구들을 리스트에 추가해준다.
100 이하 숫자는 연속된 수가 2개 미만이기 때문에, 전부 해당되며 100~1000 사이의 숫자만 고려하면 된다.
나는 조건에 맞을 경우 리스트에 넣고, 해당 리스트의 길이를 반환하는 함수를 만드는 로직으로 해당 문제를 풀었다.
함수는 빨리 만들었는데, 문제 제출 시 자꾸 NameError가 떠서 뭔가 했는데, input 변수를 따로 만들지 않고
함수만 던져주니까 발생한 에러였다.
출처 : 백준 Online Judge
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net