๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm

[๋ฐฑ์ค€/C++] 1157๋ฒˆ : ๋‹จ์–ด ๊ณต๋ถ€

by nitronium102 2021. 7. 16.

๋ฌธ์ œ

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 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

 

1157๋ฒˆ: ๋‹จ์–ด ๊ณต๋ถ€

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net


์‚ฌ์‹ค ํ’€๋ฉด์„œ ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋“ค์„ ์จ๋ดค๋Š”๋ฐ ์ด์ƒํ•˜๊ฒŒ ๋‹ค๋“ค ์•ˆ ๋จนํ˜€์„œ ๋น„ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์—ˆ๋‹ค. ํ’€๋ฉด ํ’€์ˆ˜๋ก ๋Š๋ผ์ง€๋งŒ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ์— ํ•œ์—†์ด ์•ฝํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

 

๋Œ€์†Œ๋ฌธ์ž ์ฒ˜๋ฆฌ

- ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ : str[i]=toupper(str[i]);

- ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ : str[i]=tolower(str[i]);

 

๋Œ€์†Œ๋ฌธ์ž ํŒ๋ณ„

isupper, islower

 

find ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

๋Œ“๊ธ€