Algorithm/BOJ

[BOJ] 4358 생태학

SolB 2022. 9. 18. 02:23

import sys

dic=dict()
cnt=0

while True:
    word = sys.stdin.readline().rstrip()
    if word == '':
        break
    cnt+=1
    if word in dic:
        dic[word]+=1
    else:
        dic[word]=1

tree=sorted(dic.items())

for key, value in tree:
    percent=round((value/cnt)*100,4)
    print(key, '%.4f' %percent)

<코드설명>

먼저 while문을 통해 word를 입력받아주었다. word에 아무 입력도 없을 때 break를 하도록 해주었다.word가 dic에 있다면 dic[word]에 1을 추가시켜주었고, 그렇지 않다면 dic[word]를 1로 지정해주었다.그리고 백분율을 구해야하기 때문에 while문을 돌 때마다 cnt값을 증가시켜주었다.사전 순으로 정렬해야 하므로 dic의 items를 sort해주고 이를 tree에 저장해주었다.백분율을 구하기 위해 value값을 cnt로 나누었고, 이를 100 곱해주었다. 그리고 올림자리 수를 4로 지정하였다.그리고 소수점 4번째자리까지 출력해야하므로 출력형식을 %.4f로 지정하여 출력해주었다.

 

<실행결과>