본문 바로가기

알고리즘 문제풀이

(35)
[프로그래머스] 고득점 키트 - 스택/큐3 오늘 푼 문제 3. 프린터/ Lv.2/ 시간 : 42분(타임오버) programmers.co.kr/learn/courses/30/lessons/42587?language=javascript 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 1차 function solution(priorities, location) { var answer = 0; let keep = true; priorities = priorities.map((v,i)=>{return {val:v, index: i}}); while(keep){ l..
[프로그래머스] 고득점 키트 - 스택/큐2 오늘 푼 문제 2. 다리를 지나는 트럭 / Lv.2 / 시간 : 38분 programmers.co.kr/learn/courses/30/lessons/42583?language=javascript 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 1차 function solution(bridge_length, weight, truck_weights) { var answer = 0; let currentWeight = 0; let onBridge = []; while(true){ answer++; ..
[프로그래머스] 고득점 키트 - 스택/큐1 오늘 푼 문제 1. 기능개발 / Lv.2 / 시간 : 24분 programmers.co.kr/learn/courses/30/lessons/42586?language=javascript 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr // 1차 function solution(progresses, speeds) { var answer = []; const len = progresses.length; const days = progresses.reduce((acc,cur,i)=>{ const day = M..
[프로그래머스] 고득점 키트 - 해시2 오늘 푼 문제 2. 베스트앨범 / Lv.3 / 시간 : 36분 programmers.co.kr/learn/courses/30/lessons/42579?language=javascript 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr function solution(genres, plays) { const hash = genres.reduce((acc,genre,index)=>{ acc[genre] = acc[genre] || {total : 0, maxIndex : null, secondIndex : nu..
[프로그래머스] 고득점 키트 - 해시1 오늘 푼 문제 1. 위장 / Lv.2 / 시간 : 9분 programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr function solution(clothes) { var answer = 0; const hash = clothes.reduce((acc,cur)=>{ const category = cur[1]; acc[category] = (acc[category]||1)+1; return acc; },{}); answer = Object.values(hash).reduce((acc,cur)=>{ acc*=cur return acc; },1) -1 ; return answer; }
[프로그래머스] 고득점 키트 - 정렬3 오늘 푼 문제 3. H-Index / Lv.2 / 시간 : 52분 (타임 오버) programmers.co.kr/learn/courses/30/lessons/42747?language=javascript 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr function solution(citations) { var answer = 0; let arr = citations.sort((a,b) => a-b); let n = citations.length; if(arr[0] > n) ..
[프로그래머스] 고득점 키트 - 정렬1,2 오늘 푼 문제 1. K번째 수 / Lv.1 / 시간 : 8분 programmers.co.kr/learn/courses/30/lessons/42748?language=javascript 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr function solution(array, commands) { const answer = commands.map(arr=>{ let [start, end, index] = arr; return array.slice(start-1,end).sort((a,b)=>a-b)[index-1]; }) return answer; } 2. 가장 큰 수 / L..
[해커랭크] 알고리즘을 최적화 해보자 Array Manipulation Hacker Rank - Interview Preparation Kit category - [Array] language - [javascript] 3. Array Manipultation www.hackerrank.com/challenges/crush/problem Array Manipulation | HackerRank Perform m operations on an array and print the maximum of the values. www.hackerrank.com [문제 선정의 이유] 무려 Hard 난이도의 문제이다. 쉬워 보인다고 후루룩 풀고 넘어가려다가는 서브미션에서 절반이 넘는 테스트 케이스가 타임오버 나가리를 맞게 된다는 뜻이다. 이 문제의 핵심은 푸는데 있는 것이 아니라 최적화를..