본문 바로가기
Algorithm

[백준 4358] 생태학

by YEON-DU 2020. 6. 15.
반응형

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

 

4358번: 생태학

문제 생태학에서 나무의 분포도를 측정하는 것은 중요하다. 그러므로 당신은 미국 전역의 나무들이 주어졌을 때, 각 종이 전체에서 몇 %를 차지하는지 구하는 프로그램을 만들어야 한다. 입력 ��

www.acmicpc.net

#include <iostream>
#include <map>
using namespace std;

// 생태학

string str;
map <string, double> trees;
long tree_count;

int main() {
    
    // 입력의 끝까지만 실행
    while(!cin.eof()) {
        getline(cin, str);
        
        if(str == "") break;
        trees[str]++;
        tree_count++;
    }
    
    map<string, double>::iterator it;
    
    // 소수점 4자리까지만 출력
    cout << fixed;
    cout.precision(4);
    
    for(it = trees.begin(); it != trees.end(); it++)
        cout << it->first << " " << ((it->second) / tree_count) * 100 << endl;
    
    return 0;
}

 

아래는 처음 본 함수.

cout << fixed;

cout.precision(4);

 

C언어에서의 "%.4f" 와 동일하다.

처음 문제를 봤을 때 생각한 알고리즘과 완전 동일했으나 (map 사용하여 계산, 자동정렬)

소수점 출력이나, end of file까지 실행하는 방식을 명확하게 알고있지 않아서 검색 없이 풀이가 불가능했다.

그밖에도 iterator 문법 잊지 말 것.

반응형

'Algorithm' 카테고리의 다른 글

[백준 18809] Gaaaaaaaaaarden  (0) 2020.07.05
[백준 19238] 스타트 택시  (0) 2020.06.20
X-code 특정 파일 배제하고 빌드하기  (2) 2020.02.10
[백준 17472] 다리만들기 2  (0) 2020.02.10
[백준 17142] 연구소 3  (0) 2020.02.10

댓글