Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Lv. 3
- 동적계획법
- Python
- group by
- 프로그래머스
- programmers
- SQL 고득점 KIT
- 오블완
- Lv. 0
- Java
- join
- Lv. 2
- Dynamic Programming
- softeer
- level 3
- javascript
- DP
- 파이썬
- select
- 너비 우선 탐색
- Lv. 1
- LEVEL 2
- SQL
- 자바스크립트
- C언어
- 소프티어
- dfs
- 티스토리챌린지
- 깊이 우선 탐색
- bfs
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
Softeer [Level 2] 나무 공격 {언어 : JavaScript} 본문
문제 링크
https://softeer.ai/practice/9657
정답 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const inputData = [];
rl.on('line', (line) => {
inputData.push(line.split(" ").map((e) => Number(e)));
}).on('close', () => {
const [n, m] = inputData[0];
const board = inputData.slice(1, n+1);
const [l1, r1] = inputData[n+1];
const [l2, r2] = inputData[n+2];
const attack = (l, r) => {
for (let i = l-1; i < r; i++) {
for (let j = 0; j < m; j++) {
if (board[i][j]) {
board[i][j] = 0;
break;
}
}
}
}
attack(l1, r1);
attack(l2, r2);
const answer = board.reduce((res, els) => {
const cnt = els.reduce((sum, e) => {
if (e) {
return sum+1;
}
return sum;
});
return res + cnt;
}, 0);
console.log(answer);
process.exit(0);
});
풀이 방법
- attack이라는 함수를 만들어서 l부터 r까지의 범위의 행을 열방향으로 진행하면서 환경 파괴범을 제거한다.
- 환경파괴범이 있으면 환경파괴범을 제거하고 그 행의 공격은 멈춘다.
- l1, r1과 l2, r2를 각각 attack함수의 파라미터로 넣는다.
- 결과값을 reduce를 두 번 사용하여 남은 환경 파괴범의 수를 반환하면 끝!
느낀점
- 쉬운 문제라도 범위를 실수하면 언제든지 틀릴 수 있다는 점을 명심해야 한다.
- 더 간단하게 풀 수 있는 방법이 있는지 확인해 보는 것 또한 매우 중요하다.
'알고리즘' 카테고리의 다른 글
Softeer [Level 3] [한양대 HCPC 2023] Pipelined {언어 : JavaScript} (1) | 2024.11.01 |
---|---|
프로그래머스 [Lv. 2] [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지 {언어 : Python} (0) | 2024.09.27 |
프로그래머스 [Lv. 1] [PCCP 기출문제] 1번 / 동영상 재생기 {언어 : JavaScript} (1) | 2024.09.26 |
프로그래머스 [Lv. 3] 표 병합 {언어 : Python} (0) | 2024.08.06 |
프로그래머스 [Lv. 3] 순위 {언어 : Python} (0) | 2024.07.08 |