문제누구에게 보여주기 뭐한 코드를 짰다 ...
#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";
}
}
}
이것도 아직도 효율적이진 않은 것 같은데 의문이다. 원래 이렇게 푸는건지 내 코드가 비효율적인건지,, 아무튼 풀긴 풀었다!