[알고리즘] 2493. 탑
2024. 2. 18. 15:45ㆍAlgorithm/with Java
0. 문제
1. 문제 이해
2. 제출
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class BOJ2493 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// 입력
int N = Integer.parseInt(st.nextToken());
int[] map = new int[N+1];
int[] ret = new int[N+1];
// 높이
st = new StringTokenizer(br.readLine());
for(int i=1; i<=N; i++) {
map[i] = Integer.parseInt(st.nextToken());
}
// 수신받는 타워 구하기
Stack<Integer> stk = new Stack<>();
for(int i=N; i>0; i--) { // 뒤에서부터
while(!stk.isEmpty()) {
// 감소세
if(map[i] < map[stk.peek()]) break;
//상승세
ret[stk.pop()] = i;
}
stk.push(i);
}
//출력
StringBuffer sb = new StringBuffer();
for(int i=1; i<=N; i++) {
sb.append(ret[i]).append(" ");
}
System.out.println(sb.toString());
br.close();
}
}
'Algorithm > with Java' 카테고리의 다른 글
[알고리즘] 1991. 트리 순회 (0) | 2024.02.18 |
---|---|
[알고리즘] 1713. 후보 추천하기 (0) | 2024.02.18 |
[알고리즘] 9229. 한빈이와 Spot Mart (0) | 2024.02.18 |
[알고리즘] 1233. 사칙연산 유효성 검사 (0) | 2024.02.18 |
[Java] 비트 마스킹, Next_Permutation (0) | 2024.02.18 |