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 | 31 |
Tags
- this
- 2차원배열 구간합
- 백준 11659번
- select
- Bean LifecCycle
- 구간합구하기
- 구간합
- 상속과 참조
- function test
- jquery
- InterruptException
- 생성자
- SQL
- @AllArgsConstructor
- 슈더코드
- interrupted()
- 합배열
- json
- this와 this() 차이
- pseudo-code
- 백준 11660번
- @NoArgsConstructor
- 백준
- 백준 1235번
- 마리아DB 쿼리 로그
- MariaDB Query Log
- Java
- 자바 람다식
- map()
- ajax
Archives
- Today
- Total
평범한 연구소
[백준] 1874번: 스택 수열 (JAVA) 본문
문제 설명이 친절하지 않다 ^-^ 출력 예제를 보고 문제를 해석해보자.
- 주어진 수열과 "-" 된 숫자가 같아야한다.
- 오름차순을 지켜야하므로 이전 입력값을 기억할 int 변수가 필요하다.
package boj;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
public class Ex1874 {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
Stack<Integer> s = new Stack<>();
int cnt = Integer.parseInt(br.readLine());
int start = 0; // 이전 입력값
boolean b = true;
while(cnt-- > 0) {
int num = Integer.parseInt(br.readLine());
if(num>start) {
for(int i=start+1; i<=num; i++) {
s.push(i);
sb.append("+ \n");
}
start = num;
} else if(s.peek()!=num) {
b = false;
break;
}
s.pop();
sb.append("- \n");
}
if(b) {
System.out.println(sb);
} else {
System.out.println("NO");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
'JAVA > 알고리즘 공부' 카테고리의 다른 글
[백준] 17478번: 재귀함수가 뭔가요? (JAVA) (0) | 2022.11.23 |
---|---|
[leetCode] Two Sum (JAVA) (0) | 2022.11.19 |
[백준] 9012번: 괄호 (JAVA) (0) | 2022.11.12 |
[백준] 9093번: 단어 뒤집기 (JAVA) (0) | 2022.11.07 |
[백준] 10828번: 스택 (JAVA) (0) | 2022.11.05 |