🟦/백준
[골드 5] AC
진뚱이용
2023. 5. 27. 23:48
https://www.acmicpc.net/problem/5430
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net
22:53~23:24 31분 걸림
String command = br.readLine();
int n = Integer.parseInt(br.readLine());
String line = br.readLine();
line = line.substring(1,line.length()-1);
String[] number = line.split(",");
Deque<Integer> deque = new ArrayDeque<>();
for (int i = 0; i < n; i++){
deque.addLast(Integer.parseInt(number[i]));
}
1.
int [] arr 하려다가 뒤집기 힘들 것 같아서 deque + head로 바꿈
2.
[10,20,30,40]인 케이스를 고려하지 않고
line.charAt(1);
line.chatAt(3); 이런 식으로 뽑아버림
boolean head = true;
boolean stop = false;
for (int i = 0; i < command.length(); i++) {
if (command.charAt(i) == 'R') {
if (head)
head = false;
else
head = true;
} else {
if (deque.isEmpty()) {
stop = true;
break;
}
if (head)
deque.removeFirst();
else
deque.removeLast();
}
}
무난한 R D 작업
if (stop)
sb.append("error\n");
else {
int size = deque.size();
sb.append("[");
if (head) {
for (int i = 0; i < size; i++) {
sb.append(deque.removeFirst() + ",");
}
} else {
for (int i = 0; i < size; i++) {
sb.append(deque.removeLast() + ",");
}
}
if (sb.charAt(sb.length()-1)==',')
sb.deleteCharAt(sb.length() - 1);
sb.append("]\n");
}
}
[1,2,]
마지막 숫자뒤에도 , 가 붙어버림
지우는 작업 필요
if (sb.charAt(sb.length()-1)==',')
sb.deleteCharAt(sb.length() - 1);