본문 바로가기
Algorithm/BOJ

[백준/BOJ] 1157번 - 단어 공부 (C++)

by shine-jung 2022. 3. 21.
반응형

문제 링크


코드

#include <bits/stdc++.h>
using namespace std;

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);
    vector<int> v(26, 0);
    string s;
    cin >> s;
    for (auto c : s) {
        if (c >= 'a') c -= 'a' - 'A';
        v[c - 'A']++;
    }
    int mx = *max_element(v.begin(), v.end());
    if (mx == 0) {
        cout << '?';
        return 0;
    }
    int cnt = 0, mx_i;
    for (int i = 0; i < 26; i++) {
        if(v[i] == mx) {
            cnt++;
            mx_i = i;
        }
    }
    if (cnt > 1) cout << '?';
    else cout << (char)(mx_i + 'A');
}



설명


max_element를 사용할 때 유의할 점은 값 자체를 반환하지 않고 값의 주소를 반환한다는 점이다.




(주의) 기록용으로 작성한 글입니다. 좋은 코드가 아닐 수 있습니다.

댓글 환영합니다!


반응형

댓글