Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 백준
- 시각화
- 유데미코리아
- matplotlb
- numpy
- Leetcode
- ndarray
- 데이터프레임
- pandas
- 취업부트캠프
- DataFrame
- 정렬
- 유데미
- 유데미부트캠프
- 부트캠프후기
- Til
- 파이썬
- 그리디 알고리즘
- 데이터분석
- Tableau
- 넘파이
- 브루트포스 알고리즘
- 판다스
- 데이터시각화
- 데이터드리븐
- 스타터스부트캠프
- 태블로
- 유데미큐레이션
- python
- 코딩테스트
Archives
- Today
- Total
Diary, Data, IT
[백준] 1065번 한수 - Python 본문
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
https://www.acmicpc.net/problem/1065
문제
한수는 각 자리 수가 등차수열의 형태인 수입니다.
N을 입력받아 1보다 크고 N보다 작거나 같은 한수의 개수를 구하는 문제입니다.
이때 N은 1000보다 작거나 같은 자연수로 주어집니다.
아이디어
N이 최대 1000이므로 최대 4자리 수까지만 입력받을 수 있습니다.
또한 100미만의 수는 모두 한수가 되므로, 100부터 999까지의 수를 판별하는 것에 초점을 두었습니다.
N이 100부터 999 사이일 경우에는 각 자리 수를 리스트로 저장하고, 차이를 구하여 등차수열의 여부를 결정했습니다.
코드
N = int(input())
count = 99
if N<100:
print(N)
elif (N<1000):
for i in range(100, N+1):
list_N = list(map(int, list(str(i))))
if (list_N[0] - list_N[1] == list_N[1] - list_N[2]):
count +=1
print(count)
elif (N == 1000):
for j in range(100, 1000):
list_N = list(map(int, list(str(j))))
if (list_N[0] - list_N[1] == list_N[1] - list_N[2]):
count +=1
print(count)
'Coding Test > Baekjoon' 카테고리의 다른 글
[백준] 1978번 소수 찾기 - Python (0) | 2022.09.15 |
---|---|
[백준] 4673번 셀프 넘버 - Python (0) | 2022.09.08 |
[백준] 10610번 30 - Python (0) | 2022.09.08 |
[백준] 11047번 동전 0 - Python (0) | 2022.09.07 |
[백준] 11399번 ATM - Python (0) | 2022.09.07 |