본문 바로가기

알고리즘/자료구조6

Javascript에서 인접리스트 구현하기 1. 배열 사용function createAdjacencyList(edges, nodeCount) { const adjacencyList = Array.from({ length: nodeCount + 1 }, () => []); for (const [u, v] of edges) { adjacencyList[u].push(v); adjacencyList[v].push(u); } return adjacencyList;}// 입력값const nodeCount = 6;const edgeList = [ [1, 2], [2, 5], [5, 1], [3, 4], [4, 6]];// 인접 리스트 생성const adjacencyList = createAdjacencyList(edgeList, .. 2025. 3. 6.
[백준] 2346번: 풍선 터뜨리기 (실버 3) - Javascript 풀이 (시간초과) 💡 유형: 자료구조문제 링크https://www.acmicpc.net/problem/2346 풀이(시간초과)1. 1~N번까지 풍선 원형 배치 (시계방향)2. 풍선 안에 번호 적힌 종이 있음  1. 1번 풍선을 터뜨린다.2. 1번 풍선 안에 있는 종이를 꺼내어 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터뜨린다.3. 이동방향은 시계방향이고, 이미 터진 풍선은 빼고 이동한다. 풍선 인덱스 정보와 풍선 속 숫자 정보를 함께 저장하는 배열을 새로 생성했다.const fs = require('fs');const input = fs.readFileSync('예제.txt', 'utf8').trim().split('\n');const N = parseInt(input[0]);let balloons = input.. 2025. 2. 27.
[백준] 1158번 : 요세푸스 문제 (실버 4) - Javascript 풀이 문제 링크https://www.acmicpc.net/problem/1158 풀이const fs = require('node:fs');const input = fs.readFileSync('예제.txt','utf8').split(' '); // 백준 경로:'/dev/stdin'const [n, k] = input.map(Number);const circle = [];const result = [];for(let i=1;i0){ remove = (remove + k-1) % circle.length; result.push(circle.splice(remove,1)[0]);}console.log(``); 2025. 2. 11.
[백준] 2164번: 카드2 (실버4) - Javascript 풀이 백준에서 자바스크립트를 사용해서 문제를 푸는 방법은 아래 블로그를 참고했다.https://nyang-in.tistory.com/156 [백준]백준에서 node.js 입출력 방법 정리(백준/자바스크립트/코딩테스트/알고리즘)안녕하세요. 이번 시간에는 백준에서 node.js 입출력 방법에 대해 알아보겠습니다. 자바스크립트로 코딩테스트를 준비할 경우, 백준에서는 node.js를 선택하여야 합니다. 그런데 node.js가 좀 번거롭nyang-in.tistory.com 여기서 내 VSCode는 fs를 불러올 때A Node.js builtin module should be imported with the node: protocol 오류가 발생했다.내 VSCode에서 코드 검사 도구(ESLint, Biome 등)를 사.. 2025. 2. 9.
[프로그래머스] Lv 2. 올바른 괄호 - Javascript 풀이 💡 유형: 스택/큐 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현 및 풀이1. 첫 문자가 '('이면, 남은 문자열 중 ')'가 있는지 확인한다. 따라서 '('를 제거하고 남은 문자열을 확인한다.2. 있으면 그 문자')' 도 제거한다. 3. 모든 문자가 제거되면 true를 리턴한다.4. 문자가 남아있으면 false를 리턴한다. ➡️ 정확성: 통과 / 효율성: 실패 (시간초과)function solution(s) { const arr = [...s]; while.. 2025. 2. 7.
[프로그래머스] Lv 2. 기능 개발 - Javascript 풀이 💡 유형: 스택/큐 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 구현- 각 기능의 개발속도는 모두 다르다.- 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포된다.- progresses: 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열- speeds: 각 작업의 개발 속도가 적힌 정수 배열- 구하는 것: 각 배포마다 몇 개의 기능이 배포되는지 1. 각 작업마다 100%까지 작업량을 구하여 큐(days)에 삽입한다.2. 첫 번째 작업이 완료될 때, 같이 배포할.. 2025. 2. 5.