반응형
https://www.acmicpc.net/problem/10610
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
내 코드
import sys
from itertools import permutations
input = sys.stdin.readline
n = list(input().strip('\n'))
n.sort(reverse=True)
ans =0
res =[]
if '0' in n:
n = list(map(int, n))
if sum(n) %3==0:
print(''.join(map(str, n)))
else:
print('-1')
else:
print('-1')
코드 리뷰
30의 배수 조건
- 각 자리의 숫자 합이 3의 배수여야 한다.
- 가장 끝자리가 0이어야 한다.
이 두 조건을 유의해서 코드를 작성했다.
먼저 숫자 안에 0이 있는지 확인한다.
있으면 각 자릿수의 합을 구하고, 3의 배수가 되는지 확인한다.
그리고 숫자들을 내림차순으로 정렬하여, join으로 바로 나오는 수가 가장 큰 수가 되도록 한다.
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 5014번 : 스타트링크 (0) | 2023.07.30 |
|---|---|
| [Python][백준/BOJ] 7562번 : 나이트의 이동 (0) | 2023.07.26 |
| [Python][백준/BOJ] 11722번 : 가장 긴 감소하는 부분 수열 (0) | 2023.07.25 |
| [Python][백준/BOJ] 11050번 : 이항 계수 1 (0) | 2023.07.25 |
| [Python][백준/BOJ] 1977번 : 완전제곱수 (0) | 2023.07.25 |