728x90
문제 링크: https://www.acmicpc.net/problem/4358
4358번: 생태학
프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어
www.acmicpc.net
문제 풀이
골5치곤 그닥 어렵지 않은 문제인거 같다. 파이썬에서는 딕셔너리를 이용하여 나무들의 개수를 세어주고, 반복문을 돌려주면서 나무들의 총 개수도 같이 구해주자. 이때 EOF 처리를 해주어야 한다.
이후 정렬해주고 딕셔너리를 이용하면 O(1)만에 나무의 개수를 불러올 수 있다. 몇 %를 차지하는지 출력해야 하므로 (나무의 수)/(전체 나무의 수)*100을 해주자.
코드
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d = {} | |
t = 0 | |
while True: | |
try: | |
s = input() | |
if not s in d.keys(): | |
d[s] = 1 | |
else: | |
d[s] += 1 | |
t += 1 | |
except EOFError: | |
break | |
for i in sorted(d.keys()): | |
print(i, end=' ') | |
print('%.4f' %(d[i]/t*100)) |
728x90
'BOJ' 카테고리의 다른 글
[BOJ][Python] 백준 1504번 - 특정한 최단 경로 (0) | 2021.09.20 |
---|---|
[BOJ][Python] 백준 23056번 - 참가자 명단 (0) | 2021.09.20 |
[BOJ][Python] 백준 23057번 - 도전 숫자왕 (0) | 2021.09.20 |
[BOJ][Python] 백준 20365번 - 블로그2 (0) | 2021.09.20 |
[BOJ][Python] 백준 7044번 - Bad Cowtractors (0) | 2021.09.20 |