728x90
300x250
https://www.acmicpc.net/problem/1874
BufferedWriter를 사용했더니 출력초과가 나왔다.
사유는 ..BufferedWriter는 버퍼가 일정량 이상 차면 정기적으로 flush가 된다고 한다.
임시저장 용도로 활용하기에는 무리가 있다. StirngBulider , StringBuffer를 사용할 것..!
package algorithm.boj;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class Boj1874 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.setIn(new FileInputStream("Test.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<Integer>();
int seq = 0;
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//BufferedWriter는 버퍼가 일정량 이상 차면 정기적으로 flush가 되기에 임시저장 용도로 활용하기에는 무리가 있다.
//StirngBulider , StringBuffer를 사용할 것..
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++) {
// System.out.println(i);
int num = Integer.parseInt(br.readLine());
if(seq<num) {
while(seq<num) {
seq++;
stack.push(seq);
sb.append("+\n");
}
stack.pop();
sb.append("-\n");
} else {
if(!stack.isEmpty() && stack.peek()==num) {
stack.pop();
sb.append("-\n");
} else {
System.out.println("NO");
return;
}
}
}
System.out.print(sb);
}
}
728x90
'알고리즘 > 스택' 카테고리의 다른 글
백준 17413번: 단어 뒤집기2 [스택][Stack]- Java (0) | 2023.12.19 |
---|---|
스택을 이용한 중위 표기법, 후위 표기법 변환 및 계산 (0) | 2023.12.19 |
백준 5397번: 키로거 [스택][Stack][덱][Deque][자료구조]- Java (0) | 2023.12.11 |
백준 10799번: 쇠막대기 [스택][Stack][누적합] -Java (1) | 2023.12.06 |
백준 4949번: 균형잡힌 세상[Stack][스택] -Java, 반례 (1) | 2023.12.05 |