본문 바로가기

그리디4

[프로그래머스] 단속 카메라 https://school.programmers.co.kr/learn/courses/30/lessons/42884 첫번째 풀이 // 한번은 만나게 최소 몆대 설치해야함? function solution(routes) { // 빨리 나간 순으로 정렬 routes.sort((a, b) => a[1] - b[1]); const camera = [routes[0][1]]; // 첫번째 카메라 for (let i = 1; i < routes.length; i++) { const [start, end] = routes[i]; // 이전의 카메라를 만난적 없음 카메라 추가 if (!isMet(start, end, camera)) { camera.push(end); } } return camera.length; } f.. 2024. 2. 21.
[Softeer] 금고털이 JS https://softeer.ai/practice/6288 풀이 문제에서 이해가 잘 안 가는 부분이 무게당 가격 P 이 부분이였다. 예를 들어 무게의 단위가 kg라고 한다면 무게당 가격 = 1kg당 가격이라고 볼 수 있다. 금속1: 총 무게 90kg, 1kg당 가격은 1 금속2: 총 무게 70kg, 1kg당 가격은 2 최대가격을 가방에 담아야하므로 가격이 큰 순으로 내림차순하고 더 이상 가방에 담을 수 없을 때까지 큰 가격순으로 더하면 된다 (그리디) const readline = require('readline'); const rl = readline.createInterface({ input : process.stdin, output : process.stdout }); const lines = [].. 2024. 1. 25.
[Softeer] 강의실 배정 JS (그리디) https://softeer.ai/practice/6291 강의가 끝나는 시간이 빠른거만 계속 고르면 된다 greedy const readline = require('readline'); const rl = readline.createInterface({ input : process.stdin, output : process.stdout }); const lines = []; rl.on('line', input => { lines.push(input.split(' ').map(e => parseInt(e))) }) rl.on('close', () => { const schedules = lines.slice(1).sort((a, b) => a[1]-b[1]); // 끝나는 시간을 기준으로, 오름차순 le.. 2024. 1. 25.
[레벨3] 기지국 설치 문제 링크 첫번째 풀이 (실패) set에 1부터 n까지 아파트를 정리한다 stations를 순회하면 영향을 받는 아파트들을 set에서 지운다 set을 배열로 변환하여 순회하면서 연속적인 숫자가 아닌 부분 (즉 2번에서 지운 구간에 의해 나눠진 구간들)을 만날떄마다 range의 갯수로 나눠 기지국 갯수를 구한다. function solution(n, stations, w) { var answer = 0; const numArr = Array.from({length: n},(_, i) => i+1); const set = new Set(numArr); for (const station of stations) { set.delete(station); for(let i = 1; i 2023. 11. 1.