boj)6198 - 옥상 정원 꾸미기
2020. 10. 13. 12:57ㆍPS/boj
import java.io.*;
import java.util.*;
public class boj_6198 {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static Stack<Integer> stack = new Stack<>();
public static void main(String[] args) throws IOException {
long ans = 0;
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
int height = Integer.parseInt(br.readLine());
while (!stack.isEmpty()) {
if (stack.peek() <= height) {
stack.pop();
} else {
ans += stack.size();
break;
}
}
stack.push(height);
}
System.out.println(ans);
}
}
- 혼자 풀기 실패후 다른풀이 찾아봄
- 생각의 관점을 내가 앞에 몇 개의 빌딩을 볼 수 있는가 ? -> 나를 뒤에 있는 빌딩 몇개가 볼 수 있는가 ?
로 바꿔보니까 풀이가 생각이 되는거 같음
- 각 빌딩들에 대해서 나를 몇 개의 빌딩이 볼 수 있는가 ? 로 검사
'PS > boj' 카테고리의 다른 글
boj)2504 - 괄호의 값 (0) | 2020.10.14 |
---|---|
boj)4949 - 균형잡힌 세상 (0) | 2020.10.13 |
boj)2164 - 카드2 (0) | 2020.10.12 |
boj)2493 - 탑 (0) | 2020.10.12 |
boj)10773 - 제로 (0) | 2020.10.12 |