문제링크 : https://www.acmicpc.net/problem/1863
1863번: 스카이라인 쉬운거
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 50,000) 다음 n개의 줄에는 왼쪽부터 스카이라인을 보아 갈 때 스카이라인의 고도가 바뀌는 지점의 좌표 x와 y가 주어진다. (1 ≤ x ≤ 1,000,000. 0 ≤ y ≤ 500,000) 첫
www.acmicpc.net
import java.io.*;
import java.util.*;
public class BJ1863HJ {
static int n, ans;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
Stack<Integer> arr = new Stack<>();
for (int i=0; i<n; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int high = Integer.parseInt(st.nextToken());
if (!arr.isEmpty()){
if (arr.get(arr.size() - 1) < high){
arr.push(high);
} else if (arr.get(arr.size()-1) > high) {
while (!arr.isEmpty() && arr.get(arr.size()-1)>high){
arr.pop();
ans ++;
}
if (arr.isEmpty()){
if (high>0){
arr.push(high);
}
}else {
if (arr.get(arr.size()-1) < high){
arr.push(high);
}
}
}
}else {
if (high>0){
arr.push(high);
}
}
}
System.out.println(ans + arr.size());
}
}
'Algorithm > Java' 카테고리의 다른 글
[백준] 8979 올림픽 (0) | 2024.04.11 |
---|---|
[백준] 14719 빗물 (1) | 2024.04.10 |
[백준] 2146 다리 만들기 (0) | 2024.03.25 |
[백준] 14658 하늘에서 별똥별이 빗발친다 (0) | 2024.03.14 |
[백준] 19941 햄버거 분배 (0) | 2024.03.11 |