본문 바로가기

Algorithm45

Level2. 프로그래머스 기능개발 - JavaScript function solution(progresses, speeds) { const answer = []; const progressArr = progresses.map( (progress, idx) => ({ progress, speed: speeds[idx] }) ); while( progressArr.length !== 0 ){ // 개발 progressArr.forEach( obj => obj.progress += obj.speed ); // 배포 const firstProgress = progressArr[0].progress; if( firstProgress >= 100 ) { const idx = progressArr.findIndex( obj => obj.progress < 100); let.. 2020. 10. 28.
Level2. 프로그래머스 스킬트리 - JavaScript function solution(skill, skill_trees) { var answer = 0; skill_trees.forEach( (skill_tree) => { let unlockSkill = 0; let rightSkillTree = true; for(let currenSkill of skill_tree){ if( skill.includes(currenSkill) ){ if( skill[unlockSkill] === currenSkill ) unlockSkill++; else { rightSkillTree = false; break; } } } if(rightSkillTree) answer++; }) return answer; } 혹시나, 코드 먼저 보고 이해하고 싶으신 분들을 위해서 선 코드.. 2020. 10. 27.
Level2. 프로그래머스 프린터 - JavaScript 접근 priorities에는 중요도가 표시되어 있고 location에 번호는 priorities 배열에서 몇 번째 인쇄물인지 가리킵니다. [2, 1, 3, 2]에서 location 2는 priorities[2]( 중요도 3 )와 같습니다. 하지만 중요도에 따라서 인쇄물을 출력하다 보면 priorities에서 내가 추적하고 있는 인쇄물이 어딨는지 특정 짓기가 어렵습니다. 따라서 각각에 uniqe한 값과 priority값을 tuple로 묶어서 인쇄물을 관리하면 저희가 출력되기를 바라는 인쇄물을 특정 짓기 쉬워집니다. function solution(priorities, location) { var answer = 0; let tupleArr = priorities.map((priority, idx) => [.. 2020. 10. 27.
Level1. 프로그래머스 키패드 누르기 - JavaScript 접근 왼손은 *에서 오른손은 #에서 시작 1,4,7,*은 왼손으로만 3,6,9,#은 오른손으로만 누를 수 있다. 2,5,8,0은 왼손 오른손중 가까운 손으로 누른다. 이제 위의 추상적인 행동을 코드로 표현하면 다음과 같다. function solution(numbers, hand) { var answer = ''; let keypad = { 1: [1,1], 2: [1,2], 3: [1,3], 4: [2,1], 5: [2,2], 6: [2,3], 7: [3,1], 8: [3,2], 9: [3,3], '*': [4,1], 0: [4,2], '#': [4,3], } let currentLocationL = [4,1]; // * let currentLocationR = [4,3]; // # numbers.fo.. 2020. 10. 21.