728x90
300x250
https://www.acmicpc.net/problem/5430
Deque 개념만 알면 손쉽게 구할 수 있으나..
문제를 꼼꼼히 읽어야만 풀 수 있었다.
16%에서 계속 틀렸습니다가 나와서 반례를 찾다가 놓친부분을 발견..
<체크해봐야 할 것들>
1. 정렬(asc, desc)이 아닌 뒤집기임
2. 출력시 , 콤마 뒤의 공백이 나오면 안됨
3. 2자리수 숫자 체킹 등..
4. n = 0 일 경우를 고려할 것
<반례>
3
D
1
[22]
R
0
[]
RDD
4
[1,2,3,4]
------------------------------------
결과:
[]
[]
[2,1]
3
D
0
[]
RDD
1
[42]
RD
0
[]
--------------------
결과:
error
error
error
<Java 코드>
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedList;
import java.util.StringTokenizer;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//System.setIn(new FileInputStream("Test.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int T = Integer.parseInt(st.nextToken());
for (int tc = 0; tc < T; tc++) {
st = new StringTokenizer(br.readLine());
String p = st.nextToken();
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
String sarr = st.nextToken();
sarr = sarr.replace("[","");
sarr = sarr.replace("]","");
String[] arr = sarr.split(",");
Deque dq = new LinkedList<>();
for (int i = 0; i < n; i++) {
dq.add(arr[i]);
}
// System.out.println(dq);
String res = "[]";
//함수실행
boolean isfront = true; //뒤집힘여부, true면 정방향, false면 역방향
for (int i = 0; i < p.length(); i++) {
// System.out.println(p.charAt(i)+" // "+dq);
if(p.charAt(i) == 'R') {
isfront = (isfront) ? false:true;
} else {
//배열이 비어있는데 D를 사용한 경우
if(dq.isEmpty()) {
res = "error";
break;
}
//뒤집혔나요?
if(isfront) {
dq.pollFirst();
} else {
dq.pollLast();
}
}
}
if(!dq.isEmpty()) {
if(isfront) {
System.out.println("["+dq.stream()
.map(String::valueOf)
.collect(Collectors.joining(","))+"]");
} else {
System.out.print("["+dq.pollLast());
while(!dq.isEmpty()) {
System.out.print(","+dq.pollLast());
}
System.out.println("]");
}
} else {
System.out.println(res);
}
}
}
}
728x90
'알고리즘 > 그 외' 카테고리의 다른 글
백준 1966번: 프린터 큐 [큐][자료구조] -Java (1) | 2023.11.20 |
---|---|
백준 15828번: Router [큐][자료구조][Queue] -Java (2) | 2023.11.20 |
백준 10845번: 큐 [큐][Queue][자료구조] -Java (0) | 2023.11.13 |
백준 1764번: 듣보잡 [자료구조][정렬][문자열] -Java (0) | 2023.11.06 |
백준 2503번: 숫자 야구 [브루트포스][구현] - Java (1) | 2023.10.18 |