본문 바로가기
문제 풀이/백준(BOJ)

[C++] 백준 4358번 : 생태학

by 희조당 2022. 1. 20.
728x90

https://www.acmicpc.net/problem/4358

 

4358번: 생태학

프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어

www.acmicpc.net


 문제 풀이

간단하게 맵에 대해서 이해를 묻는 문제였다.

 느낀 점

문제 자체는 어렵지 않으나, 이번에는 2가지를 배울 수 있었다.

1. 백준 채점은 파일 형식으로 처리된다. 따라서 EOF를 받으면 입력을 종료하면 된다.

2. cout << fixed; 와 cout.precision()으로 출력 자릿수를 조절할 수 있다!! 

출력 자릿 수는 저번에도 까먹었으니 이번에 제대로 기억해야겠다.

 코드

#include <iostream>
#include <map>
#include <string>

using namespace std;

map<string, float> m;
int cnt = 0;
string wood;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	while (getline(cin, wood)) {
		cnt++;
		if (m.find(wood) != m.end())
			m[wood]++;
		else m[wood] = 1;
	}

	cout << fixed;
	cout.precision(4);
	for (auto iter = m.begin(); iter != m.end(); iter++) {
		cout << iter->first << " " << (iter->second / cnt) * 100 << "\n";
	}
}

'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글

[Python] 백준 14501번 : 퇴사  (0) 2022.06.21
[Python] 백준 1026번 : 보물  (0) 2022.06.18
[C++] 백준 11286번 : 절댓값 힙  (0) 2022.01.18
[C++] 백준 1080번 : 행렬  (0) 2022.01.17
[C++] 백준 11279번 : 최대 힙  (0) 2021.11.12

댓글