πŸ“¦ Chango/🍣 EDOC

[BOJ][C++] λ°±μ€€ 2204번: λ„λΉ„μ˜ λ‚œλ…μ¦ ν…ŒμŠ€νŠΈ

선달 2021. 11. 2. 20:33
λ°˜μ‘ν˜•

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

 

2204번: λ„λΉ„μ˜ λ‚œλ…μ¦ ν…ŒμŠ€νŠΈ

꿍은 λ„λΉ„μ—κ²Œ μ˜μ–΄λ‹¨μ–΄λ“€μ„ μ œμ‹œν•œ ν›„ μ–΄λ–€ 단어가 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•Šκ³  μ‚¬μ „μˆœμœΌλ‘œ κ°€μž₯ μ•žμ„œλŠ”μ§€ λ§žμΆ”λ©΄ 양말을 μ£Όμ–΄ 자유λ₯Ό μ–»κ²Œν•΄μ€€λ‹€κ³  ν•˜μ˜€λ‹€. ν•˜μ§€λ§Œ 인성이 쒋지 μ•Šμ€ 꿍은 사싀

www.acmicpc.net

 

문제

꿍은 λ„λΉ„μ—κ²Œ μ˜μ–΄λ‹¨μ–΄λ“€μ„ μ œμ‹œν•œ ν›„ μ–΄λ–€ 단어가 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•Šκ³  μ‚¬μ „μˆœμœΌλ‘œ κ°€μž₯ μ•žμ„œλŠ”μ§€ λ§žμΆ”λ©΄ 양말을 μ£Όμ–΄ 자유λ₯Ό μ–»κ²Œν•΄μ€€λ‹€κ³  ν•˜μ˜€λ‹€.

ν•˜μ§€λ§Œ 인성이 쒋지 μ•Šμ€ 꿍은 사싀 그러고 싢지 μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λŒ€μ†Œλ¬Έμžλ₯Ό 마ꡬ μ„žμ–΄κ°€λ©° 단어듀을 μ œμ‹œν–ˆλ‹€. 예λ₯Ό λ“€μ–΄, apPle은 Bat보닀 μ•žμ„œμ§€λ§Œ AnTλ³΄λ‹€λŠ” 뒀에 μžˆλŠ” 단어닀.

λ„λΉ„μ—κ²Œ 희망은 μ—¬λŸ¬λΆ„λΏμ΄λ‹€! μ—¬λŸ¬λΆ„μ΄ λ„λΉ„μ—κ²Œ 자유λ₯Ό 선물해주도둝 ν•˜μž!

μž…λ ₯

각 ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€λŠ” μ •μˆ˜ n (2 ≤ n ≤ 1000) 으둜 μ‹œμž‘ν•˜λ©° μ£Όμ–΄μ§€λŠ” λ‹¨μ–΄μ˜ 개수λ₯Ό λœ»ν•œλ‹€.

λ‹€μŒ 각 n쀄은 길이가 μ΅œλŒ€ 20인 단어가 주어지며 λŒ€μ†Œλ¬Έμžμ˜ ꡬ뢄을 없앴을 λ•Œ λ˜‘κ°™μ€ λ‹¨μ–΄λŠ” 주어지지 μ•ŠλŠ”λ‹€.

λ§ˆμ§€λ§‰ μž…λ ₯은 0이 주어진닀.

좜λ ₯

각 쀄에 각 ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€μ—μ„œ 사전상 κ°€μž₯ μ•žμ„œλŠ” 단어λ₯Ό 좜λ ₯ν•œλ‹€.

 

풀이

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

using namespace std;

int main () {
    
    int num;
    
    while(true){
        cin >> num;
        
        //μ’…λ£Œ
        if(num == 0)
            break;
        
        string S1, S2;
        
        cin >> S1;
        for(int i=1; i<num; i++){
            cin >> S2;
            
            string s1=S1, s2=S2;
            
            for(int j=0; j<s1.length(); j++){
                
                //μ†Œλ¬Έμžλ‘œ 톡일
                if(s1[j] < 'a')
                    s1[j] = s1[j] - 'A' + 'a';
                if(s2[j] < 'a')
                    s2[j] = s2[j] - 'A' + 'a';
                
                //μ•ŒνŒŒλ²³μ΄ κ°™λ‹€λ©΄ κ·Έλƒ₯ 패슀, λ‹€λ₯΄λ‹€λ©΄ μ•ŒνŒŒλ²³ 비ꡐ ν›„ 반볡문 λΉ μ Έλ‚˜μ˜€κΈ°
                if(s1[j] != s2[j]){
                    //λ‘˜μ€‘ μ•žμ„œλŠ” λ¬Έμžμ—΄ s1에 남겨두기
                    if(s1[j] > s2[j]){
                        S1 = S2;
                    }
                    break;
                }
            }
        }
        cout << S1 << "\n";
    }
    
    return 0;
}
λ°˜μ‘ν˜•