출처 : https://www.acmicpc.net/problem/10610
10610번: 30
어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한
www.acmicpc.net

30의 배수가 되려면 모든 자릿수의 합이 3으로 나누어 떨어지면서 일의 자리 수가 0이어야 한다.
int는 for문으로 돌릴 수 없어서 처음에 str로 입력을 받았고, 그걸 첫번째 for문 돌면서 int로 바꿔서 새로운 리스트에 추가해줬다.
그 리스트를 가장 큰 수를 만들기 위해 sort(reverse=True)를 사용해서 역순으로 정렬해줬다.
# 1. 합이 3으로 나누어 떨어지는지
# 2. 0이 있는지
N = input() # for문 돌릴거라 문자열로 받기
cnt = 0 # 각 자리수의 합
check0 = 0
int_N = [] # 문자열을 숫자로 바꾸기
for i in N:
i = int(i)
int_N.append(i)
cnt += i
if i == 0:
check0 = 1
ans = 0
if cnt != 0 and cnt % 3 == 0:
if check0 == 1:
int_N.sort(reverse=True)
print(*int_N, sep="")
ans = 1
if ans == 0:
print(-1)
백준에서 100문제 풀었다!ㅎㅎ
'알고리즘 > BOJ' 카테고리의 다른 글
| [BOJ / 백준] 10828번 스택 python / 파이썬 (0) | 2022.05.13 |
|---|---|
| [BOJ / 백준] 9498번 시험 성적 python / 파이썬 (0) | 2022.05.12 |
| [BOJ / 백준] 2920번 음계 python / 파이썬 (0) | 2022.05.10 |
| [BOJ / 백준] 2495번 연속 구간 python / 파이썬 문자열 (0) | 2022.05.09 |
| [BOJ / 백준] 10817번 세 수 python / 파이썬 (0) | 2022.05.08 |
댓글