Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- Union-Find
- 날짜 계산 함수
- CTS #CTS 이관 #SAP #ABAP
- 필드카탈로그
- DP - 무한배낭(순서)
- BOJ_Gold
- Data Browser
- SAP GUI
- APPENDING CORRESPONDING
- qfieldname
- Dictionary Search Help
- java
- READ TABLE
- SAP
- NEW-PAGE PRINT ON
- ABAP
- changing value
- SM36
- ZPL
- cfieldname
- MONAT_F4
- APPENDING
- using value
- ALV Output Setting
- DP - 유한배낭
- batch job
- FOR ALL ENTRIES IN
- boole_d
- DP - 무한배낭
- transporting
Archives
- Today
- Total
Jin's Library
[Gold Ⅴ] 5430 - AC 본문
package BOJ.Gold;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
// 골드 5 AC
// Deque
public class BOJ_5430 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder answer = new StringBuilder();
while(N-- > 0){
char[] command = br.readLine().toCharArray();
int T = Integer.parseInt(br.readLine());
String[] arr = new String[T];
arr = br.readLine().replace("[", "").replace("]", "").split(",");
Boolean err = false, reverse = true;
Deque<String> q = new LinkedList<>();
for(int i=0;i<arr.length;i++)
q.offer(arr[i]);
if(arr[0]=="" && String.valueOf(command).indexOf("D") != -1) err=true;
for(int i=0;i<command.length;i++){
if(q.isEmpty() && command[i] == 'D'){
err = true;
break;
}else if(q.isEmpty() && command[i] == 'R')
continue;
if(command[i] == 'R'){ // 일자로 놓고 R이면 뒤에서 제거, 정방향이면 앞에서 제거 후 출력
if(reverse) reverse = false;
else reverse = true;
}else{
if(reverse)
q.poll();
else q.pollLast();
}
}
if(err){
answer.append("error").append("\n");
continue;
}
String[] re = new String[q.size()];
for(int i=0;i<re.length;i++)
if(reverse) re[i] = q.poll();
else re[i] = q.pollLast();
answer.append(Arrays.toString(re).replace(" ", "")).append("\n");
}
System.out.println(answer);
}
}
// 시간초과, 입출력 형식... 답은 공백없는 배멸형식, 그냥 배열 출력하면 공백있는 배열형식이다...
// 시간초과 - 배열을 뒤집었기에 n*n 복잡도가 나옴
// public class BOJ_5430 {
// public static void main(String[] args) throws Exception {
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// int N = Integer.parseInt(br.readLine());
// StringBuilder answer = new StringBuilder();
// while(N-- > 0){
// char[] command = br.readLine().toCharArray();
// int T = Integer.parseInt(br.readLine());
// String[] arr = new String[T];
// arr = br.readLine().replace("[", "").replace("]", "").split(",");
// Boolean err = false;
// // if(T == 0 && command.)
// Queue<String> q = new LinkedList<>();
// for(int i=0;i<arr.length;i++)
// q.offer(arr[i]);
// System.out.println(Arrays.toString(command) + " @@@ " + q );
// if(arr[0]== "") err=true;
// for(int i=0;i<command.length;i++){
// if(q.isEmpty() && command[i] == 'D'){
// err = true;
// break;
// }else if(q.isEmpty() && command[i] == 'R')
// continue;
// if(command[i] == 'R'){
// String[] tmp = new String[q.size()-1];
// for(int j=0;j<tmp.length;j++){
// tmp[j] = q.poll();
// }
// for(int j=tmp.length-1;j>=0;j--)
// q.offer(tmp[j]);
// }else q.poll();
// }
// if(err){
// answer.append("Error").append("\n");
// continue;
// }
// String[] re = new String[q.size()];
// for(int i=0;i<re.length;i++)
// re[i] = q.poll();
// System.out.println(q + " re: "+ Arrays.toString(re));
// answer.append(Arrays.toString(re)).append("\n");
// }
// System.out.println("@@@@@@@@@@@answer@@@@@@@@@@");
// System.out.println(answer);
// }
// }'Algorithm - Java > BOJ - Gold' 카테고리의 다른 글
| [Gold Ⅳ] 9935 - 문자열 폭발 (0) | 2025.09.29 |
|---|---|
| [Gold Ⅴ] 7576 - 토마토 (0) | 2025.09.29 |
| [Gold Ⅴ] 7569 - 토마토 (0) | 2025.09.29 |
| [Gold Ⅳ] 5427 - 불 (0) | 2025.09.29 |
| [Gold Ⅴ] 1011 - Fly me to the Alpha Centauri (0) | 2025.09.26 |