생태학에서 나무의 분포도를 측정하는 것은 중요하다. 그러므로 당신은 미국 전역의 나무들이 주어졌을 때, 각 종이 전체에서 몇 %를 차지하는지 구하는 프로그램을 만들어야 한다.
- 사용 자료구조 : 해시(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 문제. 소수 몇 째자리까지 구하는 코드 알아두자!
'Problem Solving > boj' 카테고리의 다른 글
[BOJ] 21610. 마법사 상어와 비바라기(Python) / Simulation (0) | 2021.04.30 |
---|---|
[BOJ] 1747. 소수&팰린드롬(Python) (0) | 2021.04.29 |
[BOJ] 9935. 문자열 폭발(Python) (0) | 2021.04.27 |
[BOJ] 1316. 그룹 단어 체커(Python) (0) | 2021.04.27 |
[BOJ] 13335. 트럭(Python) / Simulation (0) | 2021.04.21 |