1. 문제

4358번: 생태학

2. 개요

나무들을 입력받아 각 나무의 분포도를 사전 순으로 소수점 4자리까지 출력하는 문제.

3. 코드 및 추가내용

import sys

trees = {}
num = 0.0

while True:
    tree = sys.stdin.readline().rstrip()
    if tree == '':
        break
    
    num += 1
    if tree not in trees:
        trees[tree] = 1
    else:
        trees[tree] += 1

for tree in trees.keys():
    trees[tree] = trees[tree] / num * 100

for name, percent in sorted(trees.items()):
    print('%s %.4f' %(name, percent))

마지막을 알리는 입력이 주어지지 않아서 처음엔 이게뭐지 싶었는데 그냥 빈 값으로 처리가 됐다.

tree를 계속 입력받는데 이게 빈 값이라면 break로 탈출하고, 아니라면 나무의 수를 카운팅하며

딕셔너리를 갱신해나간다.

입력이 모두 끝났다면 분포도를 계산하고 이를 사전순으로 정렬해 소수점 4자리까지 출력한다.

Comments