본문 바로가기

Level23

728x90
프로그래머스 #탐욕법(Greedy) - 구명보트 lv2 문제 풀이 function solution(people, limit) { let answer = 0; // 구명보트 수 let startIndex = 0; let endIndex = people.length - 1; let saveActivity = true; // 구출 작업 진행 여부 people.sort((a, b) => b - a); // 제일 무거운 사람 순으로 정렬 while (saveActivity) { // 마지막 한명을 태우고 구출 작업 종료 if(startIndex === endIndex) { answer++; startIndex++; saveActivity = false; break; } // 가장 가벼운 사람과 태웠을 때 제한 무게를 넘기지 않으면 2명을 태운다. if(people[s.. 2021. 9. 13.
프로그래머스 #정렬 - 가장 큰 수 lv2 제출 답안 function solution(numbers) { let answer = '', i, numbers_sort = [], number; if(Math.max(...numbers)===0) { return '0'; } for(i=0; in[1])].join('') return answer; } 풀이 과정 0만 들어 오는 경우 "0000" 으로 반환될 우려가 있으므로 제일 첫 부분에 체크하는 조건문을 작성하였다. 1000이하의 수가 주어진다는 점을 응용할 방법이 없을까 찾아보던 중 숫자를 반복하여 4자리 수로 만들면 된다는 사실을 알아내었다. 그 부분만 차용하여 문자열 내림차순으로 정렬시켰고 결과는 주어진 숫자를 join() 하여 return 하도록 하였다. 다른 사람들의 풀이 분석 다른 사람들의.. 2021. 1. 23.
프로그래머스 #스택/큐 - 기능개발 lv2 /** * @params progresses 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 * @params speeds 각 작업의 개발 속도가 적힌 정수 배열 speeds */ function solution(progresses, speeds) { let answer = []; let progressesStack = [...progresses]; let len = progresses.length; let days = 0; //경과일 for(let i=0; i progres) { progres += speeds[i]; //100이상이 될때까지 더함. days++; //하루가 지남. } } } return answer; } 2021. 1. 16.