๐Ÿ“ฆ Chango/๐Ÿฃ EDOC

[BOJ][C++] ๋ฐฑ์ค€ 9946๋ฒˆ : ๋‹จ์–ด ํผ์ฆ

์„ ๋‹ฌ 2021. 10. 18. 21:53
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/9946

 

9946๋ฒˆ: ๋‹จ์–ด ํผ์ฆ

์ผ€์ด์Šค๋งˆ๋‹ค ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ์„œ ์˜ˆ์ œ์ถœ๋ ฅ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ค€ํ•˜๊ฐ€ ์•ŒํŒŒ๋ฒณ์„ ์ œ๋Œ€๋กœ ํšŒ์ˆ˜ํ–ˆ๋‹ค๋ฉด same ์„, ์ž˜๋ชป ํšŒ์ˆ˜ํ–ˆ๋‹ค๋ฉด different ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ

์ค€ํ•˜๋Š” ์œ ์น˜์›์—์„œ ๋‹จ์–ด ํผ์ฆ๊ฒŒ์ž„์„ ์ฆ๊ฒจํ•œ๋‹ค.

๋‹จ์–ด ํผ์ฆ๊ฒŒ์ž„์ด๋ž€, ์ฃผ์–ด์ง„ ์•ŒํŒŒ๋ฒณ๋“ค์„ ์„ž์–ด์„œ ๋‹จ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒŒ์ž„์ด๋‹ค.

์ฒœ์žฌ ์ค€ํ•˜๋Š” ์•ŒํŒŒ๋ฒณ์„ ์ž„์˜๋กœ ์กฐํ•ฉํ•˜์—ฌ, ์‚ฌ์ „๊ณผ ๋งค์นญ๋œ ๋‹จ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋‹จ์–ด๋ฅผ ์™„์„ฑ์‹œ์ผฐ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์™„์„ฑ๋œ ๋‹จ์–ด๋ฅผ ์›์žฅ๋‹˜์—๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋ ค๋Š” ์ˆœ๊ฐ„, ์ง€๋‚˜๊ฐ€๋˜ ๊ฐ•๋ฏผ์ด์™€ ๋ถ€๋”ซํ˜€์„œ ๋‹จ์–ด์กฐ๊ฐ์„ ๋•…์— ๋–จ์–ด๋œจ๋ฆฌ๊ณ  ๋ง์•˜๋‹ค.

์ค€ํ•˜๋Š” ์–ด์ฐŒ์–ด์ฐŒ ์กฐ๊ฐ์„ ํšŒ์ˆ˜ํ–ˆ์ง€๋งŒ, ์ˆœ์„œ๋Š” ๋’ค์ฃฝ๋ฐ•์ฃฝ์ด ๋˜์—ˆ๊ณ , ์•ŒํŒŒ๋ฒณ์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์•ŒํŒŒ๋ฒณ์ด ์„ž์˜€์„ ์ˆ˜๋„ ์žˆ๋‹ค.

์ค€ํ•˜๊ฐ€ ์ฒ˜์Œ์— ์™„์„ฑํ•œ ๋‹จ์–ด์™€ ๋‚˜์ค‘์— ํšŒ์ˆ˜ํ•œ ์•ŒํŒŒ๋ฒณ๋“ค์ด ์ฃผ์–ด์งˆ ๋•Œ,

์ค€ํ•˜๊ฐ€ ์•ŒํŒŒ๋ฒณ์„ ์ œ๋Œ€๋กœ ํšŒ์ˆ˜ํ–ˆ๋Š”์ง€ ์•ˆํ–ˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์ฃผ์ž.

์ž…๋ ฅ

์ž…๋ ฅ์€ ์ผ€์ด์Šค๋งˆ๋‹ค ๋‘์ค„๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.

์ฒซ์งธ ์ค„์€ ์ค€ํ•˜๊ฐ€ ์ฒ˜์Œ ์™„์„ฑํ•œ ๋‹จ์–ด์ด๊ณ , ๋‘˜์งธ ์ค„์€ ๋–จ์–ด๋œจ๋ฆฐ ๋‹ค์Œ ํšŒ์ˆ˜ํ•œ ์•ŒํŒŒ๋ฒณ๋“ค์ด๋‹ค. 

๊ฐ ์ค„์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ธธ์ด๋Š” 1000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

๋งˆ์ง€๋ง‰์— END๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋‘์ค„ ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด๋Š” ์ผ€์ด์Šค์˜ ๋์„ ์˜๋ฏธํ•œ๋‹ค.

์ถœ๋ ฅ

์ผ€์ด์Šค๋งˆ๋‹ค ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ์„œ ์˜ˆ์ œ์ถœ๋ ฅ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์ค€ํ•˜๊ฐ€ ์•ŒํŒŒ๋ฒณ์„ ์ œ๋Œ€๋กœ ํšŒ์ˆ˜ํ–ˆ๋‹ค๋ฉด same ์„, ์ž˜๋ชป ํšŒ์ˆ˜ํ–ˆ๋‹ค๋ฉด different ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

#include <iostream>

using namespace std;

int main () {
    
    int num = 1; // ์ผ€์ด์Šค ๋„˜๋ฒ„
    
    while(true){
        int alpha[26] = {0}, bet[26] = {0};
        string s1, s2;
        cin >> s1 >> s2;
        
        if(s1 == "END") break;
        
        //๊ฐ ๋ฌธ์ž์—ด์˜ ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜๋ฅผ ๋ฐฐ์—ด์— ์ €์žฅํ•˜๊ธฐ
        for(int i=0; i<s1.size(); i++){
            alpha[s1[i]-'a']++;
        }
        for(int i=0; i<s2.size(); i++){
            bet[s2[i]-'a']++;
        }
        
        //์•ŒํŒŒ๋ฒณ ๋ฐฐ์—ด ๋น„๊ต
        bool same = true;
        for(int i=0; i<26; i++){
            if(alpha[i] != bet[i]){
                same = false;
                break;
            }
        }
        
        //์ถœ๋ ฅ
        if(same) cout << "Case " << num << ": " << "same\n";
        else cout << "Case " << num << ": " << "different\n";
        
        num++;
    }
    
    return 0;
}
๋ฐ˜์‘ํ˜•