반응형
문제 : https://www.acmicpc.net/problem/1874
풀이 :
처음에는 문제 이해가 되지 않았다... 무슨 말인지 ㅎㅎ;
쉽게 말해 Stack에 들어가는 입력정수들은 1씩 증가하고,
push와 pop을 통해 1씩 증가하는 값이 담겨있는 Stack을 활용하여 입력받은 값을 만들수 있느냐는 문제였다.
문제 이해만 한다면 쉽게 풀수 있을것 같다.
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuffer sb = new StringBuffer();
int n = Integer.parseInt(st.nextToken());
int index =0;
Stack<Integer> stack = new Stack<Integer>();
while (n>0) {
n--;
st = new StringTokenizer(br.readLine());
int num = Integer.parseInt(st.nextToken());//숫자 입력받기
if(num>index) {
for (int i = index+1; i <= num; i++) {
stack.push(i);
sb.append("+").append("\n");
}
index = num;
}else if(stack.peek() != num) {
System.out.println("NO");
return;
}
stack.pop();
sb.append("-").append("\n");
}
System.out.println(sb);
}
StringBuffer와 BufferedReader를 사용하는게 편하게 느껴졌던 문제 ㅎ
반응형
'Java > Algorithm' 카테고리의 다른 글
[Java-Alogrithm] 백준 17413 단어 뒤집기 2 풀이 (0) | 2021.07.15 |
---|---|
[Java-Algorithm] 백준1406 에디터 풀이 (0) | 2021.07.15 |
[Java-Algorithm] 백준 9093 단어뒤집기 (0) | 2021.07.15 |
[Java-Algorithm] 백준 11650 좌표 정렬하기 풀이 (0) | 2021.07.15 |
[Java-Algorithm] 백준 11653 소인수 분해 풀이 (0) | 2021.07.15 |