728x90
반응형
SMALL
✏️ 문제
문제 파악
30의 배수가 되려면 10의 배수도 되어야 하므로 0이 없으면 10의 배수가 될 수 없다.
입력을 받은 수의 각 자리를 배열에 넣은 후 내림차순으로 정렬해 각 자리 수를 옮겨가며 푸는 코드를 짰는데 시간 초과가 나왔다 ㅠ
for문을 하나 삭제하려니 코드를 어떻게 짤 지 모르겠어서 찾아봤다 ..
알고보니 3의 배수를 체크하는 방법이 따로 있었던 것 .. ! (새로 알게 되었다 오히려 좋아)
각 자리 수를 더해서 3으로 나눴을 때 나머지가 없으면 3의 배수랍니다.. 이를 활용해서 코드를 다시 짜니 풀렸다.
알고리즘
- 수학
- 그리디 알고리즘
- 문자열
- 정렬
- 정수론
코드
n = input()
n = sorted(n, reverse=True)
sum = 0
if '0' not in n: # 10의 배수 확인
print(-1)
else:
for i in n:
sum += int(i) # 각 자리 수의 합
if sum % 3 != 0 : # 3의 배수 체크
print(-1)
else :
print(''.join(n))
728x90
반응형
LIST
'PS > 백준' 카테고리의 다른 글
[Python] 1049번 기타줄 (0) | 2024.07.15 |
---|---|
[Python] 1946번 신입 사원 (0) | 2024.07.15 |
[Python] 1439번 뒤집기 (0) | 2024.07.15 |
[Python] 13305번 주유소 (0) | 2024.07.15 |
[Python] 1026번 보물 (2) | 2024.07.14 |