통과한 코드
def dfs(num):
global res
# 탈출조건, 한 자리 숫자일 때
if len(num) == 1:
# res에 현재 값 저장
res = num
return
temp = 0
for w in num:
temp += int(w)
dfs(str(temp))
return
T = int(input())
n = [str(input()) for _ in range(T)]
for q in range(T):
res = 0
dfs(n[q])
print('#{} {}'.format(q+1,res))
그 외
시간 초과가 발생한 초기 코드
T = int(input())
for tc in range(1,1+T):
n = str(input())
while len(n) > 1:
res = 0
for q in n:
res += int(q)
n = str(res)
print('#{} {}'.format(tc,n))
느낀점
확실히 한번에 모아서 print하는 방식과 한번씩 print하는 방식에는 차이가 존재하는 것같다.
이전까지는 '어짜피 같은 10만번을 print하는 것이기 때문에 동일하다'고 생각했으나,
이렇게 차이가 발생하는 것을 보니 확실히 알 수 있었다.
다만, 이유는 아직 모르겠다...
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 현주의 상자 바꾸기 - PYTHON #5789 (0) | 2021.01.11 |
---|---|
[SWEA 코딩] 세상의 모든 팰린드롬 - PYTHON #4522 (0) | 2021.01.10 |
[SWEA 코딩] 세가지 합 구하기 - PYTHON #3408 (0) | 2021.01.10 |
[SWEA 코딩] 승률 비교하기 - PYTHON #3975 (0) | 2021.01.09 |
[SWEA 코딩] 두가지 빵의 딜레마 - PYTHON #5162 (0) | 2021.01.09 |