링크 : https://www.acmicpc.net/problem/4358
4358번: 생태학
프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어
www.acmicpc.net
- 문제
- 소요시간: 24분 12초


- 설계하기(접근방법)
1.더 이상 입력일 없을 때까지 입력을 받는다
tree =sys.stdin.readline()을 입력으로 받은 후,
if not tree: 로 조건을 설정하여 비어있다면 break을 해준다
2. tree_list(딕셔너리) 에 입력값이 없다면 트리를 딕셔너리에 추가한 후 1 그루를 value 값으로 정해준다
tree_list 내에 입력값이 있다면 value값을 +=1
3. dict(sorted(tree_list.items()))를 통해 tree_list를 알파벳 순으로 정렬해준다.
4. format 형식을 이용해 결과를 출력해준다
- 코드(출력)
import sys
tree_list = {}
cnt = 0
while True:
tree = sys.stdin.readline().rstrip()
if not tree:
break
cnt += 1
if tree in tree_list:
tree_list[tree] += 1
else:
tree_list[tree] = 1
tree_sortlist = dict(sorted(tree_list.items()))
for tree in tree_sortlist:
print('{0} {1:.4f}'.format(tree, tree_sortlist[tree] / cnt * 100))
- 얻어갈 부분
1. 입력이 없을 때까지 받는 법을 알게 되었다
2. 딕셔너리를 정렬해야 하는 경우 dict(sorted(tree_list.items()))를 사용하면 정렬된 값을 얻을 수 있다.
'알고리즘(백준) > 자료구조' 카테고리의 다른 글
| [알고리즘/자료구조] 2504번 : 괄호의 값 - python (0) | 2023.03.19 |
|---|---|
| [알고리즘/자료구조] 11286번 : 절댓값 힙 - python (0) | 2023.03.18 |
| [알고리즘/자료구조] 11279번 : 최대 힙 - python (0) | 2023.03.15 |
| [알고리즘/자료구조] 14425 번 : 문자열 집합 - python (0) | 2023.03.14 |
| [알고리즘/자료구조] 1620 번 : 나는야 포켓몬 마스터 이다솜 - python (0) | 2023.03.13 |