[BOJ 1863] 스카이라인 쉬운거
1. 문제 : https://www.acmicpc.net/problem/1863
2. 풀이
스택의 peek보다 현재 값이 크면 스택에 넣어주고
스택의 peek보다 현재 값이 작은 경우 하나씩 꺼내면서 더해준다
이때 값이 같은 경우 나중에 어차피 꺼낼 거기 때문에 continue한다
3. 코드
package baekjoon;
import java.util.Scanner;
import java.util.Stack;
public class 스카이라인쉬운거 {
static int N, x, y;
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
int[] arr = new int[50002];
int answer = 0;
for(int i = 0; i < N; i++){
x = sc.nextInt();
y = sc.nextInt();
arr[i] = y;
}
int cur;
Stack<Integer> stk = new Stack<Integer>();
for(int i = 0; i <= N; i++){
cur = arr[i];
while(!stk.empty() && stk.peek() > cur){
answer += 1;
stk.pop();
}
if(!stk.empty() && stk.peek() == cur)
continue;
stk.push(cur);
}
System.out.println(answer);
}
}
'💻 Coding Problems Solving > Stack | Queue' 카테고리의 다른 글
[LeetCode] Kth Largest Element (0) | 2023.07.15 |
---|---|
[LeetCode] Add Two Numbers (0) | 2023.07.14 |
[BOJ 11000] 강의실 배정 (0) | 2023.05.25 |
[프로그래머스] LV.2 프린터 (자바 java) (0) | 2023.02.22 |
[프로그래머스] LV.2 올바른 괄호 (자바 java) (0) | 2022.11.25 |
최근댓글