https://www.acmicpc.net/problem/1302
문제해석
책 이름을 n개만큼 입력 받고, 가장 많이 입력받은 책 이름을 출력하는 문제이다.
코드
#include<iostream>
#include<string>
#include<map>
#include<algorithm>
using namespace std;
int main(){
int Max =0;
int n;
cin >> n;
map<string, int> m;
string str;
for(int i=0;i<n;i++){
cin >> str;
m[str]++;
}
for (int i= m.begin();i!=m.end();i++){
Max = max(result,i->second);
}
for(int j = m.begin();j!=m.end();j++){
if(Max == j->second){
cout << j->first;
return 0;
}
}
return 0;
}
문제풀이
이 문제는 map을 활용하면 정말 좋은 문제라고 할 수 있다. 사실 배열을 만들어 숫자를 지정해둔 후, 그 배열에다가 값을 저장해도 좋지만, map이라는 좋은 라이브러리를 제공해주니 한번 사용해보도록 하자.
입력받을 책의 개수 n을 입력받고, n번만큼 책의 이름을 입력받는다. 그 후, 입력받은 책의 이름을 미리 만들어둔 map을 활용한 배열인 m에 대입해주면 된다. 그 후 m 내부에서 가장 많이 입력받은 값을 찾아 주고 출력해주면 된다.
'Koala - 7기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 10773번 제로 (0) | 2022.07.16 |
---|---|
[백준/C++]:6996번 애너그램 (0) | 2022.07.16 |
[백준/python] 9012번 괄호 (0) | 2022.07.12 |
[백준/python] 15963번 CASIO (0) | 2022.07.11 |
[백준 14652/python] 나는 행복합니다 (0) | 2022.07.11 |