728x90
https://www.acmicpc.net/problem/5430
package BKD_0x7_Deque;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
public class BOJ_5430 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
while(T-- > 0){
char[] p = br.readLine().toCharArray();
int n = Integer.parseInt(br.readLine());
String input = br.readLine();
LinkedList<Integer> dq = new LinkedList<>();
for(String val : input.substring(1,input.length()-1).split(",")){
if(!val.equals("")){
dq.add(Integer.parseInt(val));
}
}
System.out.println(AC(p,dq));
}
br.close ();
}
static String AC(char[] cmds, LinkedList<Integer> dq){
boolean isReverse = false;
for (char command : cmds) {
if (command == 'R')
isReverse = !isReverse;
else {
if (dq.size() == 0)
return "error";
if (isReverse)
dq.pollLast();
else
dq.pollFirst();
}
}
StringBuilder sb = new StringBuilder("[");
while (!dq.isEmpty()){
sb.append(isReverse ? dq.pollLast() : dq.pollFirst());
if(dq.size()!=0) sb.append(",");
}
sb.append("]");
return sb.toString();
}
}
덱을 사용하는 문제임을 알고 시작했음에도 불구하고 우엥..어떻게 뒤집지... 하고 있었다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
뒤집어 보고나니 아닐 것 같아서 다른 분들의 풀이를 찾아보니 양방향 접근이 가능한 덱의 특징을 살려서 접근하면 되는 문제였다.
isReversed를 사용하여 'R' 명령어가 사용되었는지에 대한 여부를 파악하여 전방접근, 후방접근을 선택하였따.
전체적으로 코드의 길이를 줄이는 데는 다른 블로거분의 글을 많이 참고하였다.
다시 보고 나니 그냥 비슷한 것 같...
다음에는 더 잘 간결하게 작성해봐야게따.
https://girawhale.tistory.com/9
[백준] 5430번: AC - JAVA
문제 링크 BOJ 5430번: AC 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 풀이 과
girawhale.tistory.com
또한 꾸준하게 알고리즘을 풀지 않았던 탓에... ㅋㅋㅋㅋㅋㅋ
머리가 안돌아간다...
하루에 한 문제씩은 꼭 풀어야겠당...
728x90
'🐣 알고리즘 삐약 > 💻 백준 삐약' 카테고리의 다른 글
55 삐약 : 백준 1697| 숨바꼭질 [바킹독 문제 풀이|BFS|JAVA] (0) | 2024.05.24 |
---|---|
54 삐약 : 백준 2178| 미로탐색 [바킹독 문제 풀이|BFS|JAVA] (0) | 2024.05.23 |
52 삐약 : 백준 1021| 회전하는큐 [바킹독 문제 풀이Deque|JAVA] (0) | 2024.05.08 |
51 삐약 : 백준 1926| 그림 [바킹독 문제 풀이|BFS|JAVA] (0) | 2024.01.02 |
50 삐약 : 백준 2504| 괄호의 값 [바킹독 문제 풀이|Stack|JAVA] (0) | 2023.12.29 |