TEAM 알고싶다/성공 문제

    [Baekjoon (Node.js)] 24479번 알고리즘 수업 - 깊이 우선 탐색 1

    📄 문제 📝 나의 통과 풀이 let input = require("fs") .readFileSync("/dev/stdin") // /dev/stdin .toString() .split("\n") .map((item) => item.replace("\r", "")); let [N, M, R] = input.shift().split(" ").map(Number); class Graph { constructor() { this.nodes = {}; this.count = 1; this.visited = []; this.result = []; for (let i = 0, j = N; i < j + 1; i++) { this.visited[i] = 0; } for (let i = 0, j = N; i < j; i..

    [Baekjoon (Node.js)] 2606번 바이러스

    📄 문제 😅 나의 실패 풀이 const input = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n") .map((item) => item.replace("\r", "").split(" ")); let result = 0; const N = input.shift()[0]; const edge = input.shift()[0]; class Graph { constructor() { this.nodes = {}; } addNode(node) { this.nodes[node] = {} || []; } addEdge(fromNode, toNode) { this.nodes[fromNode][toNode] = true; this.n..

    [Baekjoon (Node.js)] 2164번 카드2

    📄 문제 😅 나의 실패 풀이 const fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().trim().split("\n"); let targetNum = parseInt(input[0]); function go(num) { let arr=[] for (let i = 1; i 맨 앞에 요소를 없애고, 맨 뒤에 맨 앞에 요소를 없애면서 넣어준다. 3. 시간 초과... 최대한 적은 수행으로 짠 것 같은데, 이 방법 자체가 안된다는 걸 깨달았다. 🤔 왜 그럴까? - 채점 중이 뜨는 걸 보면 값은 잘 나온 것 같다. - 배열의 shift, push 로는 시간 복잡도가 커질 수 밖에 없다고 한다. - 우리 팀 그린이 말했던 말이 떠올라..

    [프로그래머스] JavaScript - 캐시

    📄 문제 - 캐시 알고리즘 LRU(Least Recently Used)를 사용해 캐시크기, 도시이름 배열이 주어지면 실행시간을 return - 조건 cache hit일 경우 실행시간은 1이다. cache miss일 경우 실행시간은 5이다. - 주의점 도시이름이 대소문자가 섞여있고, 스펠링만 맞으면 같은 도시다. 📝 나의 풀이 function solution(cacheSize, cities) { let answer = 0; let box = []; let newArr = cities.map((item) => item.toLowerCase()); newArr.forEach((city) => { if (!box.includes(city)) { box.push(city); answer += 5; if (box...

    [LeetCode] 152. Maximum Product Subarray(최대로 생성된 부분 배열?)

    📄 문제 - 정수 배열 nums가 주어지면 배열 내에서 붙어있는 요소들끼리 곱을 해서 값을 저장하고, 가장 큰 수를 return - 주의점 : 바로 옆에 있는 요소만 계산한 값을 취급한다. 📝 나의 풀이 let maxProduct = function(nums) { let maxNum = nums[0]; let minNum = nums[0]; let result = nums[0]; for (let i = 1; i < nums.length; i++) { maxNum *= nums[i]; minNum *= nums[i]; if (nums[i] < 0) { let currentNum = maxNum; maxNum = minNum; minNum = currentNum; } maxNum = Math.max(maxN..