본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 10610번 30 파이썬 / python 리스트 인덱스

by seohmoon 2022. 5. 11.

출처 : 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문제 풀었다!ㅎㅎ

 

댓글