백준
백준 10176 - Opposite Words(C++)
공대생의 잡다한 사전
2022. 8. 21. 18:23
문제 링크입니다. https://www.acmicpc.net/problem/10176
10176번: Opposite Words
The first line of input will be a positive integer, n, indicating the number of problem sets that follow. Following the positive integer will be n text strings, one per line.
www.acmicpc.net
문자열을 사용한 문제입니다.
자세한 것은 코드를 참고해주세요
#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <deque>
#define P pair<long long, long long>
#define PP pair<P, int>
#define F first
#define S second
using namespace std;
int N;
string arr;
bool solve() {
// 전부 대문자로 바꿔준다.
string New;
for(int i = 0; i < arr.size(); i++){
if(arr[i] >= 'a' && arr[i] <= 'z'){
New += arr[i] - 'a' + 'A';
}
if(arr[i] >= 'A' && arr[i] <= 'Z'){
New += arr[i];
}
}
// 전부 정렬해준다.
sort(New.begin(), New.end());
// 정렬해준 순서대로 opposite한 단어를 찾는다.
string Re;
for(int i = 0; i < New.size(); i++){
Re += 'Z' - (New[i] - 'A');
}
sort(Re.begin(), Re.end());
for(int i = 0; i < New.size(); i++){
if(Re[i] != New[i]) return false;
}
return true;
}
int main() {
cin.tie(0);
cout.tie(0);
cin >> N;
for(int i = 1; i <= N; i++){
cin >> arr;
if(solve()) cout << "Yes" << "\n";
else cout << "No" << "\n";
}
return 0;
}
질문 및 조언 댓글 남겨주세요