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 |
Tags
- 자바PS
- 구현
- 취득후기
- 알고리즘
- deque
- 게더타운시작
- DFS
- 백준
- 완전탐색
- COSPRO
- 시뮬레이션
- spring
- 세그먼트트리
- 네트워크플로우
- java
- 우선순위큐
- 백준코딩테스트
- 재귀함수
- YBMCOS
- GatherTown
- COSPROJAVA1급
- 다이나믹프로그래밍
- QUICKSTARTGUIDE
- dp
- 엘라스틱서치
- 이젠 골드구현도 어렵네..
- PS
- 다익스트라
- 01BFS
- BFS
Archives
- Today
- Total
공부공간
BOJ - 5430 ) AC 본문
https://www.acmicpc.net/problem/5430
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net
DEQUE를 사용해도되고 투포인터로 배열의 크기를 잡아주어도 된다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine());
for(int tc=0;tc<t;tc++) {
String order = br.readLine();
int size = Integer.parseInt(br.readLine());
String number= br.readLine();
int arr[] = new int[size];
int s=0,e=size-1,r=0;
String numberList[] = number.split(",");
for(int j=0;j<size;j++) {
String now = numberList[j];
if(j==0 || j==size-1) {
now = now.replace("[","");
now = now.replace("]","");
}
arr[j] = Integer.parseInt(now);
}
int len = order.length();
for(int j=0;j<len;j++){
char now = order.charAt(j);
if(now=='D'){
if(r%2==0){
s++;
}else {
e--;
}
} else {
r++;
}
}
if(s>=size+1 || e < -1) {
sb.append("error");
} else {
if(r%2==0) {
sb.append("[");
for(int ii=s;ii<=e;ii++) {
sb.append(arr[ii]);
if(ii!=e) {
sb.append(",");
}
}
sb.append("]");
} else {
sb.append("[");
for(int ii=e;ii>=s;ii--) {
sb.append(arr[ii]);
if(ii!=s) {
sb.append(",");
}
}
sb.append("]");
}
}
sb.append("\n");
}
bw.write(sb.toString());
bw.flush();
bw.close();
}
}
항상 인덱스의 끝값을 명확하게 계산해주자..
'알고리즘 > 구현,시뮬' 카테고리의 다른 글
BOJ - 1780 ) 종이의 개수 (0) | 2022.03.09 |
---|---|
BOJ - 9375 ) 패션왕 신해빈 (0) | 2022.03.07 |
BOJ - 17219 ) 비밀번호찾기 (0) | 2022.03.04 |
BOJ - 1676 ) 팩토리얼 0의 개수 (0) | 2022.03.03 |
BOJ - 7662 ) 이중 우선순위 큐 (0) | 2022.03.01 |
Comments