λ°μν
https://www.acmicpc.net/problem/1157
λ¬Έμ
μνλ²³ λμλ¬Έμλ‘ λ λ¨μ΄κ° μ£Όμ΄μ§λ©΄, μ΄ λ¨μ΄μμ κ°μ₯ λ§μ΄ μ¬μ©λ μνλ²³μ΄ λ¬΄μμΈμ§ μμλ΄λ νλ‘κ·Έλ¨μ μμ±νμμ€. λ¨, λλ¬Έμμ μλ¬Έμλ₯Ό ꡬλΆνμ§ μλλ€.
μ λ ₯
첫째 μ€μ μνλ²³ λμλ¬Έμλ‘ μ΄λ£¨μ΄μ§ λ¨μ΄κ° μ£Όμ΄μ§λ€. μ£Όμ΄μ§λ λ¨μ΄μ κΈΈμ΄λ 1,000,000μ λμ§ μλλ€.
μΆλ ₯
첫째 μ€μ μ΄ λ¨μ΄μμ κ°μ₯ λ§μ΄ μ¬μ©λ μνλ²³μ λλ¬Έμλ‘ μΆλ ₯νλ€. λ¨, κ°μ₯ λ§μ΄ μ¬μ©λ μνλ²³μ΄ μ¬λ¬ κ° μ‘΄μ¬νλ κ²½μ°μλ ?λ₯Ό μΆλ ₯νλ€.
#include <iostream>
#include <algorithm>
using namespace std;
int main () {
int alphabet[26] = {0};
string word;
cin >> word;
//μνλ²³ λ°°μ΄μ κ° μνλ²³μ΄ λμ¨ νμ μ μ₯ (λμλ¬Έμ ꡬλΆμμ΄)
for(int i=0; i<word.length(); i++){
if(word[i] < 'a')
alphabet[word[i] - 'A']++;
else
alphabet[word[i]-'a']++;
}
//κ°μ₯ λ§μ΄ λμ¨ μνλ²³μ μΈλ±μ€ ꡬνκΈ°
int max=0, max_index=0;
for(int i=0; i<26; i++){
if(max < alphabet[i]){
max = alphabet[i];
max_index = i;
}
}
//μνλ²³ λ°°μ΄ μ λ ¬ν΄μ μ μΌ λ§μ΄λμ¨ νμ[26] μ λλ²μ§Έλ‘ λ§μ΄ λμ¨ νμ[25]κ° κ°μΌλ©΄ ? μΆλ ₯
sort(alphabet, alphabet+26);
if(alphabet[25] == alphabet[24]){
cout << "?";
}
else { //μλλΌλ©΄ μ΅λκ°μ μΈλ±μ€ μΆλ ₯
cout << (char)(max_index+'A');
}
return 0;
}
λ°μν
'π Cpp > [BOJ] λ¨κ³λ³λ‘ νμ΄λ³΄κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ][C++] λ°±μ€ 2908λ² : μμ (0) | 2021.10.06 |
---|---|
[BOJ][C++] λ°±μ€ 1152λ² : λ¨μ΄μ κ°μ (0) | 2021.10.05 |
[BOJ][C++] λ°±μ€ 1316λ² : κ·Έλ£Ή λ¨μ΄ 체컀 (0) | 2021.10.03 |
[BOJ][C++] λ°±μ€ 2675λ² : λ¬Έμμ΄ λ°λ³΅ (0) | 2021.10.03 |
[BOJ][C++] λ°±μ€ 10809λ²: μνλ²³ μ°ΎκΈ° (0) | 2021.10.03 |