반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
나무 개수를 세고, 사전순으로 분포도를 출력하는 문제입니다.
2022.02.12 - [Algorithm] - [자료구조/해시] 백준 1620 나는야 포켓몬 마스터 이다솜 - Python
위 문제와 비슷합니다. 해시(딕셔너리) 자료구조를 이용해서 '나무'의 개수를 세고 분포도를 계산합니다.
3. 코드
import sys
#입력
tree = sys.stdin.read().rstrip().split('\n')
tree_dict = dict()
for i in tree:
#사전에 있는 나무라면 +1
if i in tree_dict:
tree_dict[i] += 1
#사전에 없다면 새로 추가
else:
tree_dict[i] = 1
#출력
for name, num in sorted(tree_dict.items()):
print(f"{name} {(num*100/len(tree)):.4f}")
입력 형식에 끝이 정해져있지 않습니다. EOF(끝)이 없으므로 sys.stdin.read()로 입력을 받습니다. Ctrl+D를 할 때까지 입력을 받으며, 파일 입출력에서는 파일의 끝을 의미합니다.
입력받은 나무 이름은 딕셔너리에 저장합니다.
round(num*100/len(tree),4)
소수점 아래 4자리까지 반올림해서 출력합니다. round() 함수는 오차가 있어서.. 사용하면 틀립니다. 그 대신 .4f 출력형식을 사용하면 통과합니다.
반응형
'Algorithm' 카테고리의 다른 글
[탐색/BFS] 백준 7569 토마토 - 파이썬(Python) (0) | 2022.03.04 |
---|---|
[구현/수학] 백준 6064 카잉 달력 - 파이썬(Python) (0) | 2022.03.04 |
[구현/수학] 백준 2355 시그마 - 파이썬(Python) (0) | 2022.03.03 |
[구현/문자열] 백준 18406 럭키 스트레이트 - 파이썬(Python) (0) | 2022.03.03 |
[구현/문자열] 백준 17609 회문 - 파이썬(Python) (0) | 2022.03.02 |
댓글