๐Ÿ“ฆ Chango/๐Ÿฃ EDOC

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

์„ ๋‹ฌ 2021. 11. 2. 20:03
๋ฐ˜์‘ํ˜•

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

 

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

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

www.acmicpc.net

 

๋ฌธ์ œ

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

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

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

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

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

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

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

์ž…๋ ฅ

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

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

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

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

์ถœ๋ ฅ

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

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

 

ํ’€์ด

#include <iostream>
#include <algorithm>
#include <string.h>

using namespace std;

int main () {
    
    for(int j=1; ;j++){
        
        //์ดˆ๊ธฐํ™”
        bool same = true;
        string a, b;
        int A[26] = {0}, B[26] = {0};
        
        //์ž…๋ ฅ
        cin >> a >> b;
        
        //์ข…๋ฃŒ
        if(a == "END")
            break;
        
        //์•ŒํŒŒ๋ฒณ ๋ฐฐ์—ด ์ €์žฅ
        for(int i=0; i<a.length(); i++)
            A[a[i] -'a']++;
        
        for(int i=0; i<b.length(); i++)
            B[b[i] -'a']++;
        
        //๋น„๊ต
        for(int i=0; i<26; i++){
            if(A[i] != B[i]){
                same = false;
                break;
            }
        }
        
        //์ถœ๋ ฅ
        if(same)
            cout << "Case " << j << ": same\n";
        else
            cout << "Case " << j << ": different\n";
    
    }
    
    return 0;
}
๋ฐ˜์‘ํ˜•