main
[백준 - 1157번] 단어 공부 본문
- map 사용법 익히기
- iterator
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
using namespace std;
int main(void)
{
string str;
char c;
map<char, int> m;
map<char, int> m2;
getline(cin, str);
//map에 insert, value 값
for (int i = 0; i < str.size(); i++)
{
//대문자로 바꾸기 (대문자와 소문자를 구분하지 않음)
str[i] = toupper(str[i]);
c = str[i];
auto item = m.find(c);
if (item != m.end())
{ //key 있을 때
m[c] ++;//value 값 증가
}
else
{ //key 없을 때
m.insert(std::make_pair(c, 1));// insert (key,value) pair
}
}
//iterator ;포인터랑 비슷함..
std::map<char, int>::iterator best
= std::max_element(m.begin(), m.end(),
[](const pair<char, int>& p1, const pair<char, int>& p2) {return p1.second < p2.second; });
// 가장 많이 사용된 알파벳이 여러 개 존재하는 경우
int count = 0;
int max_num = best->second;
map<char, int>::iterator it;
for (it = m.begin(); it != m.end(); it++)
{
if (it->second == max_num) count++;
}
if (count >= 2) cout << "?";
else
{
cout << best->first;
}
}
[참고 자료]
https://blockdmask.tistory.com/87
728x90
'Algorithm' 카테고리의 다른 글
[백준 - 2577번] 숫자의 개수 (0) | 2022.01.22 |
---|---|
[백준 - 2562번] 최댓값 (0) | 2022.01.22 |
[백준 - 1152번] 단어의 개수 (0) | 2022.01.21 |
[백준 - 1008번] A/B (0) | 2022.01.21 |
[백준 - 1929번] 소수 구하기 (0) | 2022.01.21 |
Comments