10610 30 - Python

2023. 12. 10. 04:37공부/📝 백준

1. 풀이 코드

num = input()
num_list = []
for i in num:
    num_list.append(int(i))

num_list.sort(reverse=True)
if sum(num_list) % 3 != 0 or num_list[-1] != 0:
    print(-1)
else:
    result = ''.join(map(str, num_list))
    print(result)

  3의 배수는 각 자리의 합이 3의 배수가 된다는 성질을 이용했습니다.

 

2. 다른 사람 풀이 코드

print([x:=int("".join(sorted(input())[::-1])),-1][x%30>0])

  정말 잘 풀었네요. 특히 감탄한 부분은 x := 를 통해 변수 x에 값을 할당한 뒤에 [x, -1] 리스트를 만들어서, 출력할 순번을 [x % 30 > 0] 으로 하여 참이면 1을, 거짓이면 0으로 정한게 놀랍습니다.


 

10610번: 30

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

www.acmicpc.net

 

로그인

 

www.acmicpc.net

 

'공부 > 📝 백준' 카테고리의 다른 글

11365 !밀비 급일 - C  (0) 2024.07.29
11656 접미사 배열 - Python  (0) 2023.12.10
25757 임스와 함께하는 미니게임 - Python  (0) 2023.10.08
1072 게임 - Python  (0) 2023.09.19
10816 숫자 카드 2 - Python  (0) 2023.09.17