코테 재활하러 옴
ㅋㅋㅋ 날짜가 ㅋㅋㅋ ... ㅋㅋㅋ
약간 소 잃고 외양간 고치는 느낌이긴 한데
아무튼
https://softeer.ai/practice/9657
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
이 어렵지도 않은 문제를 ㅋㅋㅋ !! ㅋㅋ !!
푸는 데 얼마 걸렸는지는 나만 알고 있어야지 큼큼
코드도 겁나 드럽다
const fs = require("fs");
const readline = require("readline");
const r1 = readline.createInterface({
// input: process.stdin, // 웹 붙여넣을 때 여기 풀어 주세요!
input: fs.createReadStream("softeer_9657_test.txt"),
output: process.stdout,
});
const calc = (arr, range, c) => {
for (let i = range[0] - 1; i < range[1]; i++) {
for (let j = 0; j < c; j++) {
if (arr[i][j] > 0) {
arr[i][j]--;
break;
}
}
}
};
let c;
let input = [];
let tc = [];
let range = [];
r1.on("line", (line) => {
input.push(line.split(" "));
}).on("close", () => {
c = input[0][1];
for (let i = 1; i < input.length - 2; i++) {
// 두 번의 공격은 빼고
tc.push(input[i].map((each) => Number(each)));
}
range.push(input[input.length - 2].map((each) => Number(each)));
range.push(input[input.length - 1].map((each) => Number(each)));
calc(tc, range[0], c);
calc(tc, range[1], c);
let sum = 0;
for (let i = 0; i < tc.length; i++) {
for (let j = 0; j < tc[i].length; j++) {
sum += tc[i][j];
}
}
console.log(sum);
process.exit(0);
});
진짜 쌩 배열로 받아서 문제에 나온 내용대로 구현한 풀이.
근데 사실 이 문제는 더 간단하게 푸는 방법이 있다
저건 그냥 구현 연습하느라구(진짜?) 길게 푼 거고
걍 각 행의 합을 이용하면 되긴 함
어차피 문제는 환경파괴범이 몇 명 남았는지만 물어보기 때문이다
그래서 각 행의 합을 저장하는 배열을 만들고
제시된 공격 구간에 해당하는 행의 값을 1씩 빼 주면 됨
const fs = require("fs");
const readline = require("readline");
const reader = readline.createInterface({
input: fs.createReadStream("softeer_9657_test.txt"),
// input: process.stdin,
output: process.stdout,
});
const input = [];
const rSum = []; // 각 행의 합을 저장하는 배열
const calc = (lineSum, range) => {
console.log(lineSum);
for (let i = range[0] - 1; i < range[1]; i++) {
if (lineSum[i] > 0) lineSum[i]--;
}
};
reader
.on("line", (line) => {
input.push(line.split(" ").map((each) => Number(each)));
})
.on("close", () => {
for (let i = 1; i < input.length - 2; i++) {
let sum = 0;
for (let j = 0; j < input[i].length; j++) {
sum += input[i][j];
}
rSum.push(sum);
}
calc(rSum, input[input.length - 2]);
calc(rSum, input[input.length - 1]);
let result = 0;
for (let i = 0; i < rSum.length; i++) {
result += rSum[i];
}
console.log(result);
});
왼쪽이 구현 오른쪽이 잔머리 쓴 풀이다
거의 차이 안 나는 것 같음
'2025 > Solving' 카테고리의 다른 글
BOJ_25192 인사성 밝은 곰곰이(JAVA) (0) | 2025.04.11 |
---|---|
BOJ_1920 수 찾기(JAVA) (0) | 2025.04.11 |
BOJ_7569 토마토(JAVA) (0) | 2025.04.06 |
BOJ_2178 미로 탐색(JAVA) (0) | 2025.04.06 |
BOJ_1926 그림(JAVA) (0) | 2025.04.05 |
댓글