알고리즘 공부(C++)

백준 10610 30 그리디

혀니리리 2022. 8. 30. 23:06
728x90

10610번: 30 (acmicpc.net)

 

10610번: 30

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

www.acmicpc.net

이 문제서 키포인트

1. '0'이 포함되어 있어야 할것

2. 모든 숫자를 더했을 때 3의 배수여야 할 것

N = list(input())
result = 0
result = sum(int(i) for i in N)
if '0' not in N or result % 3 != 0:
    print(-1)
else:
    N.sort(reverse = True)
    print("".join(N))

간단하지만 코드 줄수를 축소하는 방법이 있어 소개한다.

상대는 파이썬이다. 다 준비되어있다.

1. 한번에 리스트 안의 모든 수를 더하는 코드

sum(int(i) for i in N)

2.한번에 리스트 요소를 쭉 출력하는 코드

print("".join(N))

이것을 알아두자.

728x90