10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
코드
num = input()
zero_idx = num.find('0')
if zero_idx == -1 or int(num) % 3 != 0:
print(-1)
else:
num_lst = sorted(list(num), reverse=True)
print(''.join(num_lst))
이 문제는 3의 배수는 모든 자리의 수를 더하면 3의 배수가 된다는 사실을 알면 쉽게 풀 수 있다. 그렇지만 문제에서는 30의 배수를 찾는 것이니 맨 끝자리에 놓을 '0'이 존재하는지도 확인해야 한다.
- 0이 존재하는가
- 각 자리의 수의 합이 3의 배수인가
2가지 조건을 만족한다면 이제 내림차순으로 정렬해서 그대로 출력해주면 된다.
'문제풀이 > 수학' 카테고리의 다른 글
[Python/파이썬] 백준 19699번 소-난다! (0) | 2024.03.09 |
---|---|
[Python/파이썬] 백준 1459번 걷기 (0) | 2024.03.08 |
[Python/파이썬] 백준 3343번 장미 (1) | 2023.12.26 |
[Python/파이썬] 백준 2436번 공약수 (1) | 2023.12.20 |
[Python/파이썬] 백준 1990번 소수인팰린드롬 (0) | 2023.11.24 |
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
코드
num = input() zero_idx = num.find('0') if zero_idx == -1 or int(num) % 3 != 0: print(-1) else: num_lst = sorted(list(num), reverse=True) print(''.join(num_lst))
이 문제는 3의 배수는 모든 자리의 수를 더하면 3의 배수가 된다는 사실을 알면 쉽게 풀 수 있다. 그렇지만 문제에서는 30의 배수를 찾는 것이니 맨 끝자리에 놓을 '0'이 존재하는지도 확인해야 한다.
- 0이 존재하는가
- 각 자리의 수의 합이 3의 배수인가
2가지 조건을 만족한다면 이제 내림차순으로 정렬해서 그대로 출력해주면 된다.
'문제풀이 > 수학' 카테고리의 다른 글
[Python/파이썬] 백준 19699번 소-난다! (0) | 2024.03.09 |
---|---|
[Python/파이썬] 백준 1459번 걷기 (0) | 2024.03.08 |
[Python/파이썬] 백준 3343번 장미 (1) | 2023.12.26 |
[Python/파이썬] 백준 2436번 공약수 (1) | 2023.12.20 |
[Python/파이썬] 백준 1990번 소수인팰린드롬 (0) | 2023.11.24 |