[백준] #4583 거울상

kkily·2022년 3월 19일
0

[알고리즘]

목록 보기
78/102

문제누구에게 보여주기 뭐한 코드를 짰다 ...

#include<iostream>

using namespace std;

int main(){
    string s;
    int check=0;
    while(true){
        cin>>s;
        check=0;
        if(s=="#")
            return 0;
        else{
            for(int i=s.length()-1;i>=0;i--){
                if(s[i]!='b'&&s[i]!='d'&&s[i]!='p'&&s[i]!='q'&&s[i]!='i'&&s[i]!='o'&&s[i]!='v'&&s[i]!='w'&&s[i]!='x'){
                    cout<<"INVALID";
                    check=1;
                    break;
                }
            }

            if(check==0){
                 for(int i=s.length()-1;i>=0;i--){
                    if(s[i]=='b'){
                        cout<<'d';
                    }
                    else if(s[i]=='d'){
                        cout<<'b';
                    }
                    else if(s[i]=='p'){
                        cout<<'q';
                    }
                    else if(s[i]=='q'){
                        cout<<'p';
                    }
                    else if(s[i]=='i'){
                        cout<<'i';
                    }
                    else if(s[i]=='o'){
                        cout<<'o';
                    }
                    else if(s[i]=='v'){
                        cout<<'v';
                    }
                    else if(s[i]=='w'){
                        cout<<'w';
                    }
                    else if(s[i]=='x'){
                        cout<<'x';
                    }
                }
                
            }
            
            cout<<"\n";
        }

    }
}

그래도 맞췄다...ㅎ
근데 이건 아닌 것 같아서 다른 분들 코드를 보고 조금 축약했다. 문제를 빨리 풀어야지~ 욕심에 코드를 생각없이 짰다.

#include<iostream>

using namespace std;

int main(){
    string s;
    int check=0;
    while(true){
        cin>>s;
        check=0;
        if(s=="#")
            return 0;
        else{
            for(int i=s.length()-1;i>=0;i--){
                if(s[i]!='b'&&s[i]!='d'&&s[i]!='p'&&s[i]!='q'&&s[i]!='i'&&s[i]!='o'&&s[i]!='v'&&s[i]!='w'&&s[i]!='x'){
                    cout<<"INVALID";
                    check=1;
                    break;
                }
            }

            if(check==0){
                 for(int i=s.length()-1;i>=0;i--){
                    if(s[i]=='b'){
                        cout<<'d';
                    }
                    else if(s[i]=='d'){
                        cout<<'b';
                    }
                    else if(s[i]=='p'){
                        cout<<'q';
                    }
                    else if(s[i]=='q'){
                        cout<<'p';
                    }
                    else{
                        cout<<s[i];
                    }
                }
                
            }
            
            cout<<"\n";
        }

    }
}

이것도 아직도 효율적이진 않은 것 같은데 의문이다. 원래 이렇게 푸는건지 내 코드가 비효율적인건지,, 아무튼 풀긴 풀었다!

profile
낄리의 개발 블로그╰(*°▽°*)╯

0개의 댓글

관련 채용 정보