Problem Solving/boj
[BOJ] 4358. 생태학(Python)
chesleashin
2021. 4. 29. 17:41
생태학에서 나무의 분포도를 측정하는 것은 중요하다. 그러므로 당신은 미국 전역의 나무들이 주어졌을 때, 각 종이 전체에서 몇 %를 차지하는지 구하는 프로그램을 만들어야 한다.
- 사용 자료구조 : 해시(Hash)
파이썬 코드는 다음과 같다.
from sys import stdin
input = stdin.readline
nameInfo = dict() # 나무 이름 등장 횟수
nameSet = set() # 중복 없앤 이름 리스트
cnt = 0
while True:
name = input().strip()
if not name:
break
if name not in nameInfo.keys():
nameInfo[name] = 1
nameSet.add(name)
else: nameInfo[name] += 1
cnt += 1
nameLst = sorted(list(nameSet)) # 사전 순으로 정렬
for name in nameLst:
print("%s %.4f"%(name, nameInfo[name] / cnt * 100)) # 소수 넷째 자리까지
- 시간 : 412ms / 메모리 : 125156kb
- 고찰 : 간단한 hash 문제. 소수 몇 째자리까지 구하는 코드 알아두자!