알고리즘/문제풀이
[Python] 백준 4358 생태학
정찡이
2021. 11. 26. 16:55
728x90
1. 문제 링크
https://www.acmicpc.net/problem/4358
4358번: 생태학
프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어
www.acmicpc.net
2. 문제 요약
나무의 종이 전체 몇 %를 차지하는지 구하기

3. 아이디어 정리
- defaultdict를 이용하여 모든 dict 값이 0으로 세팅
- 입력된 값 + 1을 해준다.
- 나무의 종이 차지하는 비율을 출력한다.
4. 문제 풀이
4-1. 내풀이
import sys
from collections import defaultdict
dict_ = defaultdict(int)
count = 0
while True:
n = str(sys.stdin.readline().rstrip())
if not n:
break
dict_[n] += 1
count += 1
dict_ = sorted(dict_.items())
for k, v in dict_:
print('%s %.4f' % (k, round((v / count * 100), 4)))
5. 결론
- dict 사용하는 문제
반응형