백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 2096 , 내려가기 [슬라이딩 윈도우]
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
이 문제는 일단 Node.js 로 못푸는 문제이다. 메모리 초과 땜시.
계속 메모리 초과 가 나와서 찾아보니 Node.js 로는 못푼다는 게시글을 발견했다.
이후 파이썬으로 돌려서 풀어버림. pypy3 로는 돌아간다.
여담으로 이제 파이썬 코드가 작성하는게 더 불편해졌다 ㅋㅋㅋ
자바스크립트가 훨씬더 편함.
문제 출처
https://www.acmicpc.net/problem/2096
https://www.acmicpc.net/board/view/73963
버전 업데이트로 Node.js 가 사용하는 메모리가 늘어나 돌아가지 않는다는 내용이다.
백준은 이런게 상당히 불편한거 같다.
문제 풀어도 안돌아가는거 만큼 허무한게 없다...
똑같은 코드로 파이썬으로 돌려봤는데 잘 돌아간다.
푼 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const T = input.shift();
const MAP = input.map((v) => v.trim().split(" ").map(Number));
let MaxDp = [MAP[0][0], MAP[0][1], MAP[0][2]];
let MinDp = [MAP[0][0], MAP[0][1], MAP[0][2]];
function solution(T, MAP) {
for (let i = 1; i < T; i++) {
let [X, Y, Z] = [MaxDp[0], MaxDp[1], MaxDp[2]];
MaxDp[0] = Math.max(X, Y) + MAP[i][0];
MaxDp[1] = Math.max(X, Y, Z) + MAP[i][1];
MaxDp[2] = Math.max(Y, Z) + MAP[i][2];
[X, Y, Z] = [MinDp[0], MinDp[1], MinDp[2]];
MinDp[0] = Math.min(X, Y) + MAP[i][0];
MinDp[1] = Math.min(X, Y, Z) + MAP[i][1];
MinDp[2] = Math.min(Y, Z) + MAP[i][2];
}
return [Math.max(...MaxDp), Math.min(...MinDp)].join(" ");
}
console.log(solution(Number(T), MAP));
반응형
'알고리즘 공부 > 백준 - 자바스크립트' 카테고리의 다른 글
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 15686 , 치킨 배달 [DFS] (0) | 2022.10.09 |
---|---|
백준/ Gold 5 문제 , 백준 Node.js 자바스크립트 1011 , Fly me to the Alpha Centauri (1) | 2022.10.08 |
백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 24499 , blobyum [슬라이딩 윈도우] (0) | 2022.10.06 |
백준/ Silver 4 문제 , 백준 Node.js 자바스크립트 12847 , 꿀 아르바이트 [슬라이딩 윈도우] (1) | 2022.10.05 |
백준/ Silver 3 문제 , 백준 Node.js 자바스크립트 21921 , 블로그 [슬라이딩 윈도우] (0) | 2022.10.04 |