728x90
문제 출처: https://www.acmicpc.net/problem/10610
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net
문제
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다.
미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라.
입력
N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다.
출력
미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라.
예제 입력 1
30
예제 출력 1
30
예제 입력 2
102
예제 출력 2
210
예제 입력 3
2931
예제 출력 3
-1
예제 입력 4
80875542
예제 출력 4
88755420
정답
tmp = str(input())
tmp = sorted(tmp, reverse= True)
sum = 0
if '0' not in tmp:
print(-1)
else:
for i in tmp:
sum += int(i)
if sum%3 !=0:
print(-1)
else:
print("".join(tmp))
문제 풀이 방법
1. tmp에 값을 받아와서 최대의 수가 나오게 정렬
2. if문을 통해 문자열0이 없을 경우 -1을 출력
3. for문을 통해 모든수를 sum에 더해줍니다 30의 배수가 자리수를 3배수가 되고 맨 끝 자리가 0일경우 30의 배수가 됩니다.
4. if문을 통해 sum%3이 0이 아닐경우 -1을 출력합니다.
5. else문을 통해 join으로 tmp를 출력
728x90
'코딩 > 백준' 카테고리의 다른 글
[백준/파이썬/수학] 1977번 완전제곱수 코딩테스트 연습풀이 브론즈1 (0) | 2022.03.16 |
---|---|
[백준/파이썬/수학] 1789번 수들의 합 코딩테스트 연습풀이 실버5 (0) | 2022.03.15 |
[백준/파이썬/수학] 6588번 골드바흐의 추측 코딩테스트 연습풀이 실버1 (0) | 2022.03.13 |
[백준/파이썬/수학] 2225번 합분해 코딩테스트 연습풀이 골드5 (0) | 2022.03.11 |
[백준/파이썬/수학] 2576번 홀수 코딩테스트 연습풀이 브론즈3 (0) | 2022.03.10 |