https://www.acmicpc.net/problem/10610
문제 해결을 위한 과정
이 문제는 그리디 알고리즘으로 그다지 어렵지 않은 문제였습니다. 30의 배수가 되려면 10의 배수이면서 3의 배수여야 합니다. 따라서 내림차순으로 정렬을 하였을 때 일의 자릿수가 0이면서 3의 배수이어야 합니다.
문제 해결을 위한 팁
저의 경우 내림차순으로 정렬을 하기 위해 각각의 숫자를 str로 입력받은 후 내림차순으로 정렬한 후 int로 변경하였습니다.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
|
s = list(map(str, input()))
s.sort(reverse = True)
temp = ""
for i in range(len(s)):
temp += s[i]
temp = int(temp)
if temp % 10 != 0 or temp % 3 != 0:
print(-1)
else:
print(temp)
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
백준 알고리즘 11866번: 요세푸스 문(Python) (0) | 2022.01.06 |
---|---|
백준 알고리즘 1789번: 수들의 합 (Python) (0) | 2022.01.03 |
백준 알고리즘 1026: 보물(Python) (0) | 2022.01.03 |
백준 알고리즘 1010번: 다리 놓기 (Python) (0) | 2021.12.27 |
백준 알고리즘 1463번: 1로 만들기 (Python) (0) | 2021.12.27 |