꾸준히 합시다
백준 파이썬 1065번: 한수 본문
문제 유형: 브루트 포스
# Solution 1
n = int(input())
count = 0
for i in range(1, n+1):
if i < 100:
count += 1
else:
st = list(map(int, str(i)))
if st[0] - st[1] == st[1] - st[2]:
count += 1
print(count)
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 즉 1부터 99까지의 수는 모두 한수인 것이다. 그렇기에 만약 입력값이 세 자리 수 이하라면 한수의 개수는 자기 자신 + 1이 된다.
세 자리 수일 경우 파이썬의 map함수와 list를 사용해 수를 한 자리씩 쪼개 주어 각 자릿수의 차를 구한다. 첫 번째 숫자와 두 번째 숫자의 차와 두번째 숫자와 마지막 숫자의 차이가 같으면 count의 개수를 1씩 늘려준다.
'코딩 테스트 문제 풀이' 카테고리의 다른 글
백준 파이썬 5397번: 키로거 (0) | 2021.03.08 |
---|---|
백준 파이썬 1406번: 에디터 (0) | 2021.03.08 |
백준 파이썬 5635번: 생일 (0) | 2021.03.06 |
백준 파이썬 1158번: 요세푸스 문제 (0) | 2021.03.06 |
백준 파이썬 15792번: A/B - 2 (0) | 2021.03.06 |
Comments