반응형
문제링크
https://www.acmicpc.net/problem/17608
풀이방법
- 막대기를 처음부터 순차적으로 살펴볼까 고민했지만 보이는 여부를 하나하나 체크하기엔 복잡할 것이라는 생각이 들어서, 바라보는 시각인 마지막부터 실행을 시키면 단순하게 풀 수 있을 것이라는 생각이 들었다.
- 바라보는 관점에서는 무조건 앞 순서보다 길이가 긴 막대기만 보일 것이기 때문에 이를 기준으로 로직을 구현했다.
- 보이는 개수를 count=0으로 할당하고, 현재 낮은 높이를 min=0으로 할당한다.
- 만약 현재 값이 min값보다 같거나 작으면 안 보이기 때문에 continue로 넘어간다.
- 그렇지 않다면 현재 시각에서 보이는 막대기이기 때문에 count++를 해주고, min값을 현재 값 기준으로 업데이트 해준다.
- 반복문 종료 후 count를 출력한다.
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const input = [];
rl.on("line", (line) => {
input.push(line);
});
rl.on("close", () => {
let count = 0;
let min = 0;
for (let i = Number(input[0]); i > 0; i--) {
if (Number(input[i]) <= min) continue;
min = Number(input[i]);
count++;
}
console.log(count);
});
반응형
'개발' 카테고리의 다른 글
[HTTP 완벽 가이드] 18장 웹 호스팅 (0) | 2025.02.11 |
---|---|
[99클럽] 알고리즘 TIL: 백준 10845번 큐 - JavaScript (0) | 2025.02.05 |
[HTTP 완벽 가이드] 17장 내용 협상과 트랜스코딩 (1) | 2025.02.04 |
[HTTP 완벽 가이드] 16장 국제화 16.4~16.6 (0) | 2025.02.04 |
[99클럽] 알고리즘 TIL: 백준 10828번 스택 - JavaScript (1) | 2025.02.03 |