티스토리 뷰
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class boj_17298 {
static Stack<Integer> s = new Stack<>();
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[n];
int[] nge = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
for (int i = 0; i < arr.length; i++) {
if (s.isEmpty()) {
s.push(i);
}
// 현재의 값이 스택의 top보다 크다면 현재값이 오큰수
while (!s.isEmpty() && arr[i] > arr[s.peek()]) {
nge[s.pop()] = arr[i];
}
s.push(i); // 현재 값도 오큰수를 구해야하니 스택에 Push
}
// 위에 과정을 거쳤는데도 스택에 쌓여있다는것은 오큰수가 없다는 뜻
while (!s.isEmpty()) {
nge[s.pop()] = -1;
}
// 출력
for (int value : nge) {
sb.append(value).append(" ");
}
System.out.println(sb.toString());
}
}
- 어렵다,,,,
- 스택 생각
- 오큰수라는 것은 인덱스와 값이 크면서 인덱스가 제일 작은 값
- 그러니까 나 다음 첫번째에 등장하는 큰 수라고 생각
'PS > boj' 카테고리의 다른 글
boj)1929 - 소수 구하기 (0) | 2020.09.15 |
---|---|
boj)17299 - 오등큰수 (0) | 2020.09.15 |
boj)10799 - 쇠막대기 (0) | 2020.09.14 |
boj)17413 - 단어 뒤집기 2 (0) | 2020.09.14 |
boj)1158 - 요세푸스 문제 (0) | 2020.09.14 |
링크
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- JPA 연관관계 매핑
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- Spring Security
- 패스트캠퍼스 컴퓨터공학 완주반
- BOJ
- 이펙티브자바 아이템60
- 드림코딩
- 모던자바스크립트
- 이펙티브자바 스터디
- js api
- 김영한 JPA
- GCP
- 백기선 스터디
- JS 딥다이브
- dreamcoding
- HTTP 완벽가이드
- 킹수빈닷컴
- java
- http
- HTTP 완벽 가이드
- 김영한 http
- 프로그래머스 SQL
- js array
- 이펙티브자바
- ㅇㄷㅇㅈ
- js promise
- 프로그래머스
- 백준
- 이펙티브자바 아이템59
- REST API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함