1. 문제
https://level.goorm.io/exam/49066/%EA%B1%B0%EC%9A%B8-%EB%8B%A8%EC%96%B4/quiz/1
2. 소스코드
#include <iostream>
using namespace std;
int n;
char LUT[] = {'b','d','i','l','m','n','o','p','q','s','z','u','v','w','x'};
bool isMirror(string str){
int len = str.length();
for(int i = 0; i < len; ++i){
// 거울 알파벳이 아닌 경우
bool isIn = false;
for(int j = 0 ; j < 15; ++j )
if(str[i] == LUT[j]) {isIn = true; break;}
if(!isIn) return false;
// 거울 알파벳이지만, 대칭이 아닌 경우
if(str[i] == 'b'){
//cout << str[i] << '\n';
//cout << str[len -1- i] << '\n';
if(str[len -1- i] != 'd') return false;
}
else if(str[i] == 'd'){
//cout << str[i] << '\n';
//cout << str[len -1- i] << '\n';
if(str[len -1- i] != 'b') return false;
}
else if(str[i] == 'p'){
// cout << str[i] << '\n';
//cout << str[len -1- i] << '\n';
if(str[len -1- i] != 'q') return false;
}
else if(str[i] == 'q'){
// cout << str[i] << '\n';
//cout << str[len -1- i] << '\n';
if(str[len -1- i] != 'p') return false;
}
else if(str[i] == 's'){
// cout << str[i] << '\n';
// cout << str[len -1- i] << '\n';
if(str[len -1- i] != 'z') return false;
}
else if(str[i] == 'z'){
// cout << str[i] << '\n';
// cout << str[len -1- i] << '\n';
if(str[len -1- i] != 's') return false;
}
}
return true;
}
int main() {
cin >> n;
while(n--){
string str;
cin >> str;
if(isMirror(str)) cout << "Mirror" <<'\n';
else cout << "Normal" << '\n';
}
return 0;
}
'알고리즘 > 구름' 카테고리의 다른 글
[ 구름 / DFS ] 양팔 저울 (0) | 2020.06.29 |
---|---|
[ 구름 / 그리디 ] 거스름돈 풀이 (0) | 2020.06.29 |
[ 구름 / 문자열 ] 회문 풀이 (0) | 2020.06.29 |
[ 구름 / 단순 구현 ] 막대기 풀이 (0) | 2020.06.29 |
[ 구름 / 문자열 ] 앵무새 꼬꼬 (0) | 2020.06.28 |