Codeforces Round #742 (Div. 2)-A. Domino Disaster
falconlee236
·2021. 11. 16. 20:25
문제 설명
엘리스는 $2 \times n$ 크기 타일을 가지고 있다. 엘리스는 타일을 $1 \times 2$ 크기 도미노로 완전히 덮고 싶다. 엘리스는 도미노를 수직, 수평으로 놓을 수 있고 도미노끼리 겹치면 안된다.
엘리스는 지금 밥에게 타일의 한 행을 보여준다. 우리는 엘리스가 보여준 타일의 한 행을 가지고 다른 행이 어떻게 구성됐는지 알아내야 한다.
Input
첫번째 줄에는 테스트 케이스의 개수 $t$가 주어진다. $(1 \le t \le 5000)$
각 테스트케이스의 첫번째 줄에는 타일의 가로 길이 $n$이 주어진다. $(1 \le n \le 100)$
각 테스트케이스의 두번째 줄에는 'L', 'R', 'U', 'D' 로만 이루어져 있는 $n$개의 문자로 구성된 문자열 's'가 주어진다. 'L'은 left, 'R'은 right, 'U'는 up, 'D'는 down이라는 뜻이다. 이 문자열은 타일의 한 행을 의미한다.
각 테스트케이스는 반드시 답이 존재한 경우만 주어진다.
Output
각 테스트 케이스마다 타일의 다른 한 행을 출력한다. 만약 답이 여러개 있다면 아무거나 출력해도 좋다.
Example
input
4
1
U
2
LR
5
LRDLR
6
UUUUUU
output
D
LR
LRULR
DDDDDD
문제 접근
사용한 알고리즘: 구현
걸린 시간 : 00:06
이 문제는 문제 설명을 보고 이해하는것이 아니라 문제 맨 아래에 있는 Note를 보면 바로 이해할 수 있다.
한 타일이 'U' 이면 다른 타일은 'D'를, 한 타일이 'D' 이면 다른 타일은 'U'를 출력한다. 그리고 한 타일이 'L' 혹은 'R'이면 다른 타일 또한 각각'L'과 'R'을 출력하면 된다.
정답 코드
#include <iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int t; cin >> t;
while(t--){
int n; cin >> n;
char arr[n];
for(int i = 0; i < n; i++){
char c; cin >> c;
if(c == 'U') arr[i] = 'D';
else if(c == 'D') arr[i] = 'U';
else arr[i] = c;
}
for(int i = 0; i < n; i++) cout << arr[i];
cout << "\n";
}
return 0;
}
'알고리즘 > codeforces' 카테고리의 다른 글
Codeforces Round #742 (Div. 2)-C. Carrying Conundrum (0) | 2021.11.16 |
---|---|
Codeforces Round #742 (Div. 2)-B. MEXor Mixup (0) | 2021.11.16 |
Educational Codeforces Round 113 (Rated for Div. 2)-C. Jury Meeting (0) | 2021.11.16 |
Educational Codeforces Round 113 (Rated for Div. 2)-B. Chess Tournament (0) | 2021.11.16 |
Educational Codeforces Round 113 (Rated for Div. 2)-A. Balanced Substring (0) | 2021.11.16 |