💡문제접근
- 미리 만들어진 딕셔너리를 이용해서 제출했는데 계속
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