728x90
반응형
1. 문제
https://www.acmicpc.net/problem/4358
2. 풀이
문제 자체는 어렵지 않지만 자주 안쓰면 까먹을법한 내용들이 많이 들어있다.
1. 입력의 개수가 따로 주어지지 않고 EOF면 종료하는 방법
while(getline(cin, str)) { // EOF면 종료
...
}
2. 소수점 자리수 맞추는 방법
// 소수점 4자리까지 표시
cout << fixed;
cout.precision(4);
3. map에서 value 접근 문법 ( 이전에는 계속 find를 사용하다가 이번에 새로 알게된 문법이다..)
dict[str]++; // 파이썬처럼 접근이 가능하다..
3. 코드
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
// 나무 종 이름, 개수
map<string, int> dict;
int total;
// 4358
int main() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
string str;
while(getline(cin, str)) { // EOF면 종료
total++;
dict[str]++;
}
// 소수점 4자리까지 표시
cout << fixed;
cout.precision(4);
for(auto iter : dict) {
cout << iter.first << " " << ((double)iter.second / total) * 100 << "\n";
}
return 0;
}
728x90
반응형
'💡 Problem Solving > Baekjoon' 카테고리의 다른 글
[백준 - 6593] 상범 빌딩 [C++] (0) | 2023.10.24 |
---|---|
[백준 - 1946] 신입 사원 [C++] (0) | 2023.10.22 |
[백준 - 20055] 컨베이어 벨트 위의 로봇 [C++] (0) | 2023.10.20 |
[백준 - 1197] 최소 스패닝 트리 [C++] (0) | 2023.10.20 |
[백준 - 7490] 0 만들기 [C++] (0) | 2023.10.19 |