
- '.'을 기준으로 파일 종류를 파악해 그 개수를 저장해야 한다.
- 출력할 때에는 파일 종류를 사전 순으로 정렬해서 출력해야 한다.
- 메모리 : 44032 KB
- 시간 : 680 ms
import sys
n = int(input())
zips = {}
for i in range(n):
name = sys.stdin.readline().strip()
for n in range(len(name)):
if name[n] == '.':
if name[n+1:] not in zips.keys():
zips[name[n+1:]] = 1
else:
zips[name[n+1:]] += 1
zips = sorted(zips.items())
for z in zips:
print(z[0], z[1])
- 파일을 입력받은 뒤에 파일명만 따로 저장해 리스트에 담았다. 그때 개수를 고려하지 않아 개수를 세는 과정을 한 번 더 해야 했다.
- 비효율적으로 코드를 짜다 보니 시간도 오래 걸리고 리스트의 개수도 늘어나 시간초과가 된 것 같다.
- 이러한 과정으로 인해 효율적인 방법을 강구하던 중 딕셔너리를 생각하게 되었고 key값에 파일 종류명을 value 값에 그 파일종류의 개수를 담는 식으로 코드를 짜게 되었다. -> 위 코드 참고
import sys
n = int(input())
zips = []
for i in range(n):
name = sys.stdin.readline().strip()
for n in range(len(name)):
if name[n] == '.':
zips.append(name[n+1:])
count = []
kinds = []
for z in zips:
if z not in kinds:
count.append([z,zips.count(z)])
kinds.append(z)
count.sort()
for c in count:
print(c)