💡문제접근
- 미리 만들어진 딕셔너리를 이용해서 제출했는데 계속
Keyerror
가 출력되어 도대체 어떤 부분이 문제인지 잘 몰랐다. 구글링을 통해서 Keyerror
발생 이유를 찾아봤는데 딕셔너리에 없는 키를 참조하는 것은 불가능하므로 이런 경우 Keyerror
가 발생한다.
- 딕셔너리를 미리 만들지 않고 횟수별로 카운팅하여 N의 값이 1이 되는 순간 break를 걸고 딕셔너리의
value
값이 0이 아닌 값이 나오는 경우 딕셔너리의 key
값과 value
값을 공백을 두어 출력했더니 AC를 받았다.
💡코드(메모리 : 30616KB, 시간 : 304ms)
T = int(input())
for _ in range(T):
N = int(input())
j = 2
dict = {}
while True:
if N == 1:
break
if N % j == 0:
N //= j
if j not in dict:
dict[j] = 1
else:
dict[j] += 1
else:
j += 1
for i in dict.items():
if i[1] != 0:
print(i[0], i[1])
💡소요시간 : 21m