๋ฌธ์
์ํ๋ฒณ ๋์๋ฌธ์๋ก ๋ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ฉด, ์ด ๋จ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ด ๋ฌด์์ธ์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋จ์ด์ ๊ธธ์ด๋ 1,000,000์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ด ๋จ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก ์ถ๋ ฅํ๋ค. ๋จ, ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ?๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
01. ์ํ๋ฒณ์ด ์ฌ์ฉ๋ ๊ฐฏ์๋ฅผ ascii code๋ฅผ ์ด์ฉํ์ฌ ์ฒ๋ฆฌํ๋ค
- 'A' = 65, 'a' = 97
02. for๋ฌธ์ ์ด์ฉํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ ์ถ๋ฆฐ๋ค.
#include <iostream>
using namespace std;
int main()
{
string word, result;
int arr[26] = {
0,
};
int max_cnt = 0;
cin >> word;
for (int i = 0; i < word.length(); i++)
{
if (word[i] < 97)
arr[word[i] - 65]++; //๋๋ฌธ์
else
arr[word[i] - 97]++; //์๋ฌธ์
}
for (int j = 0; j < 26; j++)
{
if (arr[j] == 0)
continue;
else if (max_cnt < arr[j])
{
max_cnt = arr[j];
result = (char)(j + 65);
}
else if (max_cnt == arr[j])
{
result = "?";
}
}
cout << result;
}
https://www.acmicpc.net/problem/1157
์ฌ์ค ํ๋ฉด์ ์ฌ๋ฌ ํจ์๋ค์ ์จ๋ดค๋๋ฐ ์ด์ํ๊ฒ ๋ค๋ค ์ ๋จนํ์ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ํ์๋ค. ํ๋ฉด ํ์๋ก ๋๋ผ์ง๋ง ๋ฌธ์์ด ์ฒ๋ฆฌ์ ํ์์ด ์ฝํ ๊ฒ ๊ฐ๋ค.
๋์๋ฌธ์ ์ฒ๋ฆฌ
- ๋ชจ๋ ๋๋ฌธ์๋ก : str[i]=toupper(str[i]);
- ๋ชจ๋ ์๋ฌธ์๋ก : str[i]=tolower(str[i]);
๋์๋ฌธ์ ํ๋ณ
- isupper, islower
find ํจ์์ ๊ฒฝ์ฐ๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ง ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ์์ ์ฌ์ฉํ๊ธฐ์๋ ์ ํฉํ์ง ์๋ค.
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 2908 : ์์ - reverse, atoi, to_string ์ฌ์ฉ (0) | 2021.07.18 |
---|---|
[๋ฐฑ์ค/C++] 1152๋ฒ : ๋จ์ด์ ๊ฐ์ (0) | 2021.07.18 |
[๋ฐฑ์ค/C++] 2675๋ฒ : ๋ฌธ์์ด ๋ฐ๋ณต (0) | 2021.07.14 |
[๋ฐฑ์ค/C++] 10809๋ฒ : ์ํ๋ฒณ ์ฐพ๊ธฐ (0) | 2021.07.14 |
[๋ฐฑ์ค/C++] 11654๋ฒ : ์์คํค ์ฝ๋ (0) | 2021.07.12 |
๋๊ธ