공부공간

BOJ - 5430 ) AC 본문

알고리즘/구현,시뮬

BOJ - 5430 ) AC

개발자가될수있을까? 2022. 3. 6. 00:40


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