자료구조

문제링크https://www.acmicpc.net/problem/5430문제풀이R 연산을 해야할 시 실제 배열을 앞뒤를 변경하게 계산속도 차원에서 효율적이지 못하다. 따라서 원본 배열의 원소의 순서를 뒤집기 보다는 앞에서 원소를 제거 or 뒤에서 원소를 제거 하는 방식으로 문제를 풀어야 시간초과 없이 문제를 풀 수 있다. 나는 direction 이라는 변수의 값을 기준으로 배열의 원소를 제거하는 방향을 파악하여 이를 진행하였다. 문제를 다 풀고나서 보니 풀이가 꽤나 긴거 같은데 추후 시간나면 줄여봐야겠다. ( 다른사람풀이 : https://tesseractjh.tistory.com/250 )let fs = require("fs");let input = fs.readFileSync("/dev/stdin")..
문제링크https://www.acmicpc.net/problem/11279 문제풀이자바스크립트로 풀게 된다면 힙(heap) 구조를 직접 class로 구현해서 풀어야 한다.힙 구조를 이용하면 계산횟수를 현저히 줄일 수 있다. 만약 힙구조에 대해 모른다면 이를 학습하고 이 문제를 풀기를 권한다.힙구조에 대해 이해하고 있기 때문에 문제없이 해당 문제를 풀 수 있었다. let fs = require("fs");let input = fs .readFileSync("/dev/stdin") .toString() .split("\n") .map((n) => Number(n));class MaxHeap { constructor() { this.heap = []; } pu..
문제https://www.acmicpc.net/problem/17219 문제풀이주소에 중복이 없다고 하길래 Set 객체를 안쓰고 그냥 Object를 활용해서 문제를 풀었다. 아주 기본적인 문제이다.let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");let [N, M] = input .shift() .split(" ") .map((n) => parseInt(n));let obj = {};for (let i = 0; i
문제https://www.acmicpc.net/problem/1966 풀이배열자체를 변형시키기 보단 바라보는 idx를 증가시키면서 배열을 순회했다. 어려움 없이 풀 수 있었다.const fs = require("fs");const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");let [caseCnt, ...caseArr] = input;caseCnt = +caseCnt;for (let i = 0; i Number(num)); let max = Math.max(...arr); let answer = 1; let idx = 0; while (1) { if (arr[idx] !== -1 && arr[..
devWarrior
'자료구조' 태그의 글 목록