javascript
-
문제 이름 : 실패율 function solution(N, stages) { let answer = []; let users = stages.length; for(let i=1; i el===i).length; answer.push([i, stageLevelFilter/users]); users -= stageLevelFilter } answer.sort((a, b) => b[1] - a[1]); return answer.map(el=> el[0]); } * 코드는 짧지만.. 처음엔 생각보다 하드코딩하고 틀려버렸다. 5번째 스테이지까지 있을때 4번까지만 결과가 있고, 5번은 없는 경우 5번은 NaN이 나와서 이를 예외처리한다고 isNaN을 사용해 처리해서 '0'으로 해야하는데 잘못보고 '1'로 하고 정답..
[Programmers] 실패율 문제 - (javascript)문제 이름 : 실패율 function solution(N, stages) { let answer = []; let users = stages.length; for(let i=1; i el===i).length; answer.push([i, stageLevelFilter/users]); users -= stageLevelFilter } answer.sort((a, b) => b[1] - a[1]); return answer.map(el=> el[0]); } * 코드는 짧지만.. 처음엔 생각보다 하드코딩하고 틀려버렸다. 5번째 스테이지까지 있을때 4번까지만 결과가 있고, 5번은 없는 경우 5번은 NaN이 나와서 이를 예외처리한다고 isNaN을 사용해 처리해서 '0'으로 해야하는데 잘못보고 '1'로 하고 정답..
2022.01.25 -
문제 이름 : 입국심사 function solution(n, times) { let answer =0; const binary_search = () => { let left = 1; let right = Math.max(...times) * n; while(left=n) break; } if(ppl>=n){ answer = mid; right = mid -1; }else{ left = mid +1; } } } binary_search(); return answer; } * 이분탐색을 써야 한다는 것을 알면서도 이 문제를 이렇게 바로 풀 수 있나 싶었다. 풀면서 느낀 점이 이런 유형을 접해보지 않았다면 수학문제처럼 접근조차 못하기 쉽지 않았을까? 했는데 다른 사람들은 어떻게 느끼는지 궁금하다.. 이 문제는..
[Programmers] 입국심사 문제 - (javascript)문제 이름 : 입국심사 function solution(n, times) { let answer =0; const binary_search = () => { let left = 1; let right = Math.max(...times) * n; while(left=n) break; } if(ppl>=n){ answer = mid; right = mid -1; }else{ left = mid +1; } } } binary_search(); return answer; } * 이분탐색을 써야 한다는 것을 알면서도 이 문제를 이렇게 바로 풀 수 있나 싶었다. 풀면서 느낀 점이 이런 유형을 접해보지 않았다면 수학문제처럼 접근조차 못하기 쉽지 않았을까? 했는데 다른 사람들은 어떻게 느끼는지 궁금하다.. 이 문제는..
2022.01.25 -
문제 이름 : [3차] 압축 function solution(msg) { const dic = ['A','B','C','D','E', 'F','G','H','I','J', 'K','L','M','N','O', 'P','Q','R','S','T', 'U','V','W','X','Y', 'Z']; let answer = []; msg = msg.split(''); for(let i=0; i
[Programmers] [3차] 압축 문제 - (javascript)문제 이름 : [3차] 압축 function solution(msg) { const dic = ['A','B','C','D','E', 'F','G','H','I','J', 'K','L','M','N','O', 'P','Q','R','S','T', 'U','V','W','X','Y', 'Z']; let answer = []; msg = msg.split(''); for(let i=0; i
2022.01.25 -
문제 이름 : 수식 최대화 // 딕셔너리에 arrow function 사용 const operator = { '+': (a, b) => a + b, '-': (a, b) => a - b, '*': (a, b) => a * b, }; function solution(e) { let answer = 0; const operate = [['*', '+', '-'], ['*', '-', '+'], ['+', '*', '-'], ['+', '-', '*'], ['-', '*', '+'], ['-', '+', '*']]; let str = ''; let numArr = e.split(/[\D]/g).map(Number); let operArr = e.match(/[\*\+\-]/g); for(const op of ..
[Programmers] 수식 최대화 문제 - (javascript)문제 이름 : 수식 최대화 // 딕셔너리에 arrow function 사용 const operator = { '+': (a, b) => a + b, '-': (a, b) => a - b, '*': (a, b) => a * b, }; function solution(e) { let answer = 0; const operate = [['*', '+', '-'], ['*', '-', '+'], ['+', '*', '-'], ['+', '-', '*'], ['-', '*', '+'], ['-', '+', '*']]; let str = ''; let numArr = e.split(/[\D]/g).map(Number); let operArr = e.match(/[\*\+\-]/g); for(const op of ..
2022.01.25 -
문제 이름 : [1차] 뉴스 클러스터링 문제 function solution(str1, str2) { let answer = 0; // toLowerCase로 소문자로 만든 후 배열로변경 str1 = str1.toLowerCase().split(''); str2 = str2.toLowerCase().split(''); let temp1 = []; let temp2 = []; // str들 2개씩 자른 후, 영어 소문자면 temp에 저장 const getStr = (arr, temp) => { arr.map((el, i) => { let check = arr.slice(i, i+2).join(''); if(check.match(/[a-z]{2}/)) temp.push(check); }); } getStr(..
[Programmers] [1차] 뉴스 클러스터링 문제 - (javascript)문제 이름 : [1차] 뉴스 클러스터링 문제 function solution(str1, str2) { let answer = 0; // toLowerCase로 소문자로 만든 후 배열로변경 str1 = str1.toLowerCase().split(''); str2 = str2.toLowerCase().split(''); let temp1 = []; let temp2 = []; // str들 2개씩 자른 후, 영어 소문자면 temp에 저장 const getStr = (arr, temp) => { arr.map((el, i) => { let check = arr.slice(i, i+2).join(''); if(check.match(/[a-z]{2}/)) temp.push(check); }); } getStr(..
2022.01.24 -
문제 이름 : 메뉴 리뉴얼 function solution(orders, course) { let menu = {}; // 메뉴들을 조합으로 가져오는 함수 function combination(order, idx, len, prev) { if (prev.length === len) { let cur_key = prev.sort().join(""); if (cur_key in menu) { menu[cur_key] += 1; } else menu[cur_key] = 1; return; } for (let i = idx; i < order.length; i++) { combination(order, i + 1, len, [...prev, order[i]]); } } //orders를 처음부터 끝까지 반복하면..
[Programmers] 메뉴 리뉴얼 문제 - (javascript)문제 이름 : 메뉴 리뉴얼 function solution(orders, course) { let menu = {}; // 메뉴들을 조합으로 가져오는 함수 function combination(order, idx, len, prev) { if (prev.length === len) { let cur_key = prev.sort().join(""); if (cur_key in menu) { menu[cur_key] += 1; } else menu[cur_key] = 1; return; } for (let i = idx; i < order.length; i++) { combination(order, i + 1, len, [...prev, order[i]]); } } //orders를 처음부터 끝까지 반복하면..
2022.01.24