기록하고 까먹지 말기

10610 본문

전공/백준

10610

yha97 2022. 10. 25. 16:06

날짜 : 2022. 10. 25

사용 언어 : python

 

문제

 

 

코드

import sys

n = (sys.stdin.readline().strip())
num = []

while len(n) > 0:
    i = int(n[-1])
    num.append(i)
    n = n[:-1]
num.sort(reverse=True)
res = 0

for i in num:
    res += i
    res *= 10
res = res // 10

if res % 30 != 0:
    print(-1)
else:
    print(res)

 

 

알게된 점

- 파이썬에서 int가 무제한으로 받아낼 수 있다고는 했지만 n값을 int형으로 받다보니 시간초과가 발생했다.

- 맨 처음 이를 모르고 단순 알고리즘에서 문제를 찾으려 했지만 계속해서 시간초과가 발생했다.

- int의 경우 파이썬2에서는 9223372036854775807가 최대로 가능하지만 파이썬 3에서는 해당하지 않는다.

- 그렇지만 문제에서는 시간초과가 발생했기 때문에(최대 n값이 10^5 자릿수) 문자열 형식으로 받아들인 다음 자릿수별로 나열하면서 30의 배수인지를 판별 후 결괏값을 출력하는 방식으로 문제를 해결했다.

 

 

참고 사이트

 

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

1744  (0) 2022.10.26
2178  (0) 2022.10.25
1339  (0) 2022.10.23
1789  (0) 2022.10.23
1003  (0) 2022.10.21