티스토리 뷰
📚 문제
입력
- 첫 번째 행은 케이스의 개수, T이다. 다음 행부터는 T개의 케이스들이 나온다. 각 케이스는 블리트릭스가 고른 하나의 숫자 N으로 구성된다.
- 제한
- 1 ≤ T ≤ 100.
- 0 ≤ N ≤ 10^6.
출력
- 각 케이스에 대해서, 케이스 번호가 x이고 y가 정답일 때, Case #x: y라고 출력해야 한다.
입력 예시
5
0
1
2
11
1692
출력 예시
Case #1: INSOMNIA
Case #2: 10
Case #3: 90
Case #4: 110
Case #5: 5076
힌트
- 예제 입출력 1번에 대해서, 2 × 0 = 0, 3 × 0 = 0 등등으로 이어지므로, 블리트릭스는 0외에는 다른 숫자를 기록할 수 없을 것이며, 따라서 영원히 잠에 들 수 없다.
- 예제 입출력 2번의 경우, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 순으로 떠올릴 것이며, 0이 가장 마지막에 기록되는 수가 될 것이다. 따라서 10이 마지막 수가 될 것이다.
- 예제 입출력 3번의 경우, 2, 4, 6... 등등으로 떠올릴 것이다. 숫자 9는 90 전에는 기록할 수 없다. 90을 떠올렸을 때 이미 블리트릭스는 0~8의 숫자를 적었을 것이므로, 90이 마지막 수가 될 것이다.
- 예제 입출력 4번은 블리트릭스가 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 을 떠올릴 것이고, 110이 마지막 수가 될 것이다.
- 예제 입출력 5번은 문제에서 설명한 수이다.
🧑🏻💻 풀이 과정
0
은 무조건INSOMNIA
이라고 봐야한다. 입력받자마자cut
하자n
은 최대 10의 6제곱이므로,while
은n
이10,000,000
이하일 동안만 반복하자.while
시작마다 0~9 까지의 값이 저장되었는지 확인해서break
- 새로운 숫자를 모을 때 마다 0~9 값이 모두 모였는지 확인하고,
print
def print_success(arr, num, i):
if sum(list(map(int, arr))) >= 45 and '0' in arr:
print('Case #' + str(i + 1) + ': ' + str(num))
def sum_break(arr):
return sum(list(map(int, arr))) >= 45 and '0' in arr
t = int(input())
for i in range(t):
n = int(input())
if n == 0:
print('Case #' + str(i + 1) + ': INSOMNIA')
continue
numbers = []
d = 1
while n <= 10000000:
if sum_break(numbers):
break
squares = n
squares *= d
for number in str(squares):
if number not in numbers:
numbers.append(number)
print_success(numbers, squares, i)
d += 1
'알고리즘' 카테고리의 다른 글
[algorithm] 프로그래머스 - 이상한 문자 만들기 (파이썬) (0) | 2022.07.03 |
---|---|
[algorithm] 백준 2847 - 게임을 만든 동준이 (파이썬) (0) | 2022.07.02 |
[algorithm] 백준 17264 - I AM IRONMAN (파이썬) (0) | 2022.06.27 |
[algorithm] 백준 11008 - 복붙의 달인 (파이썬) (0) | 2022.06.26 |
[algorithm] 백준 16435 - 스네이크 버드 (파이썬) (0) | 2022.06.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 김영한
- 파이썬
- MySQL
- 알고리즘
- 백준
- 리팩토링
- 데이터베이스
- 릿코드
- Algorithm
- spring boot
- 노마드코더
- 스프링 부트
- mysql 8.0
- leetcode
- 구현
- 스프링
- 인프런
- Real MySQL
- 문자열
- 정렬
- 북클럽
- kotlin
- 그리디
- webflux
- 자료구조
- Spring
- 스프링부트
- 코테
- 코틀린
- 노마드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함