반응형
BOJ 2493 : 탑
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
StringTokenizer str = new StringTokenizer(br.readLine());
int[] nlist = new int[n];
for(int i =0; i < n; i++) {
nlist[i] = Integer.parseInt(str.nextToken());
}
boolean[] blist = new boolean[n];
int[] dp = new int[n];
dp[0] = 0;
int a = 0;
for(int i = 1; i < n; i++) {
if(nlist[i] > nlist[a]) {
if(dp[a] == 0 && !blist[a]) {
dp[i] = 0;
a = i;
}
else {
a = dp[a];
i--;
}
} else if(nlist[i] == nlist[a]) {
dp[i] = a;
} else {
if(a == 0)
blist[i] = true;
dp[i] = a;
a = i;
}
}
for(int i = 0; i < n; i++) {
if(dp[i] != 0) dp[i]++;
if(blist[i]) dp[i] = 1;
bw.write(dp[i] + " ");
}
bw.flush();
br.close();
bw.close();
}
}
반응형
'코딩 문제 풀이 > 백준' 카테고리의 다른 글
[백준] 자바 문제 풀이 5373 : 플래티넘5 (1) | 2023.10.09 |
---|---|
[백준] 자바 문제 풀이 17143 : 골드1 (0) | 2023.10.08 |
[백준] 자바 문제 풀이 5430 : 골드5 (0) | 2023.10.08 |
[백준] 자바 문제 풀이 1351 : 골드5 (0) | 2023.10.08 |
[백준] 자바 문제 풀이 13975 : 골드4 (0) | 2023.10.08 |