반응형
문제
생태학에서 나무의 분포도를 측정하는 것은 중요하다. 그러므로 당신은 미국 전역의 나무들이 주어졌을 때, 각 종이 전체에서 몇 %를 차지하는지 구하는 프로그램을 만들어야 한다.
문제풀이
import sys
ans={}
cnt=0
#01
for i in sys.stdin:
if i=='\n':
break
a=i.rstrip()
cnt+=1
if a in ans:
ans[a]+=1
else:
ans[a]=1
#02
ans=sorted(ans.items(),key=lambda x:x[0])
for i in ans:
x=i[1]/cnt*100
print('{} {:.4f}'.format(i[0],x))
- #01 : 입력의 끝이 정해져있지 않기에, "\n"이 마지막으로 들어왔을 때 멈춘다.
그 외의 정상값 입력 시 cnt를 1씩 늘려주고, ans 딕셔너리에 있다면 +1을
없다면 ans[a]=1이라는 값을 만들어준다.
- #02 : 입력받은 값을 기준으로 딕셔너리를 정렬해준다.
개수를 아까 구한 cnt(전체개수)로 나누고 *100을 해주면 백분율로 표시된다.
이를 format을 사용하여 문제에서 원하는 소수점 4자리로 설정 후 출력해준다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 1260 파이썬 - DFS와 BFS (0) | 2022.12.16 |
---|---|
[알고리즘] 백준 14912 파이썬 - 숫자 빈도수 (0) | 2022.12.15 |
[알고리즘] 백준 6571 파이썬 - 피보나치 수의 개수 (0) | 2022.12.13 |
[알고리즘] 백준 20291 파이썬 - 파일 정리 (0) | 2022.12.12 |
[알고리즘] 백준 14650 파이썬 - 걷다보니 신천역 삼 (Small) (0) | 2022.12.11 |