티스토리 뷰
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
1. 문제 내용
2. 접근 방식
- 미르코가 만들고 싶어하는 수가 존재하지 않는 경우?
가장 기본적으로 30의 배수는 무조건 일의 자리 숫자가 0이다. 따라서 입력 받은 수에 0이 없다면 무조건 -1이 출력되어야 한다.
- 입력받은 수의 숫자를 가장 큰 순으로 재배치한 후 30으로 나눈다.
즉, 입력 받은 수가 2104라면 각 숫자는 2, 1, 0, 4이고, 이를 큰 순으로 배치하면 4210이다. 이렇게 새로 구한 숫자가 30의 배수인지 확인한다.
3. 정답 코드
- list(<문자열>): 숫자(문자열)을 각 digit(문자열)로 이뤄진 리스트로 변환 ex) '102' => ['1', '0', '2']
- '<특정 구분자>'.join(<리스트>): 리스트를 특정 구분자를 포함하여 문자열로 변환
n = input()
if '0' not in n:
print(-1)
else:
number = ''.join(sorted(list(n), reverse=True))
if int(number) % 30 == 0:
print(number)
else:
print(-1)
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 17521번 Byte Coin 파이썬 정답 코드 (0) | 2023.06.07 |
---|---|
[백준] 1246번 온라인 판매 파이썬 정답 코드 (0) | 2023.06.06 |
[백준] 19939번 박 터뜨리기 파이썬 정답 코드 (0) | 2023.06.05 |
[백준] 1758번 알바생 강호 파이썬 정답 코드 (0) | 2023.06.05 |
[백준] 11508번 2 + 1 세일 파이썬 정답 코드 (0) | 2023.06.05 |