문제 및 해결
한수의 갯수를 구하는 함수를 만드는 문제이다. 한 자리수나 두 자리수 까지는 등차수열이 무조건 성립하고 4 자리수(1000)은 한수가 되지 못한다. 따라서 나머지 100~999의 세 자리수만 등차수열이 성립하는지 조건을 건다. 조건은 등차수열의 합공식이 맞으면 등차수열이므로 맞으면 count 값을 증가 시켜준다.
소스코드
def get_num_of_hansoo(n):
count = 0 # 한수 갯수 세는 변수
for i in range(1, n+1):
if 1 <= i <= 99: # 한 자리 수나 두 자리수 일 때
count += 1
elif i == 1000: # 4자리 수 일 때
pass
else: # 세 자리 수 일 때
l = list(map(int, str(i)))
if l[1] == (l[0] + l[2]) / 2: # 등차수열일 경우 성립하는 공식
count += 1
return count
N = int(input())
print(get_num_of_hansoo(N))
느낀점
처음에는 문제 접근방식 감이 안왔는데. 노트에 예시를 나열하니 감이 생겼다. 문제를 한 번에 해결하려고 하지 말고 쪼개서 풀면 더 쉽다.