Hanbit the Developer

[문자열] Python - 4358번, 생태학 본문

Algorithm/백준

[문자열] Python - 4358번, 생태학

hanbikan 2021. 4. 7. 17:42

www.acmicpc.net/problem/4358

 

4358번: 생태학

프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어

www.acmicpc.net

 

import sys
input = sys.stdin.readline

trees = {}
treeCount = 0

while True:
    curInput = input().rstrip()
    if not curInput:
        break

    if trees.get(curInput):
        trees[curInput] += 1
    else:
        trees[curInput] = 1
    treeCount += 1

sortedTreesName = sorted(trees.keys())
for treeName in sortedTreesName:
    print('%s %.4f' % (treeName, trees[treeName]*100/treeCount))

 

입력을 Dictionary(trees)에 넣어준다.

이후 이름들만 정렬시킨 리스트(sortedTreesName)를 하나 만들어주고, 이 리스트를 따라 Dictionary를 탐색한다.