목록전체 글 (126)
차차로그
레벨1 마지막 문제!!!! 몇 시간동안 잡고 있었는지.....참나 ㅠㅠ 혼자서는 도저히 못 하겠어서 푸는 법 힌트를 봤다.. function solution(numbers, hand) { var answer = ''; var phone = { 1:[0,0], 2:[0,1], 3:[0,2], 4:[1,0], 5:[1,1], 6:[1,2], 7:[2,0], 8:[2,1], 9:[2,2], '*':[3,0], 0:[3,1], '#':[3,2] } var left = phone['*']; var right = phone['#']; for(var i = 0; i < numbers.length; i++){ if(numbers[i] % 3 == 1){ left = phone[numbers[i]]; answer += ..
드디어 풀어낸 인형뽑기 게임~!!!!! 막상 풀어보니까 엄청 어려운 문제는 아니었지만 문제 자체를 이해하는 거가 헷갈렸던..ㅠㅠ function solution(board, moves) { var arr = []; var answer = 0; for(var j = 0; j < moves.length;j++){ for(var i = 0; i < board.length;i++){ if(board[i][moves[j]-1] != 0){ arr.push(board[i][moves[j]-1]); board[i][moves[j]-1] = 0; if(arr[arr.length-2] == arr[arr.length-1]){ arr.pop(); arr.pop(); answer += 2; } break; } } } ret..
function solution(N, stages) { var answer = new Array(N).fill(0); //[ 0, 0, 0, 0, 0 ] //유저 수 var user = stages.length; stages = stages.sort((a,b)=>a-b); var map = new Map(); answer.map((v,i)=>{ map.set(i+1, v); }) //Map(5) { 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0 } stages.map((v,i)=>{ map.set(v, (map.get(v)||0)+1); }) //Map(6) { 1 => 1, 2 => 3, 3 => 2, 4 => 1, 5 => 0, 6 => 1 } var arr = [...map]..
드디어 푼 다트게임 코테!! 5단계로 나눠서 문제를 풀어봤다. 1단계. 문자열에서 각 단계의 점수 쪼개기 정규식을 이용해 문자열을 쪼개 배열 A로 만들었다. 1단계를 거치면 ["1S","2D*","3T"]가 된다. 2단계. 숫자는 각 기회에서 얻은 기준 점수. 이 점수만 모아놓은 또다른 배열B를 만들기 ["1S","2D*","3T"] 라면 [1,2,3] 배열 만들기. 이 점수를 기준으로 계산을 해야한다. 3단계. 알파벳 계산하기 S면 배열[i]에 1제곱, D는 배열[i]에 2제곱, T는 배열[i]에 3제곱하기. 3단계를 거치면 [1,4,27]이 된다. 4단계. 스타상(*), 아차상(#) 계산하기 스타상은 해당 점수와 직전 점수에 2배가 되고 아차상은 해당 점수만 마이너스가 된다. 스타상일 때는 배열[i]..
탐욕 알고리즘 aka 그리디의 핵심은 선택의 순간 때 가장 최선의 상황만을 선택한다는 것이다 그 상황의 최적해를 구해 최종 해답에 도달하는 것이기 때문에 이 해답이 최적의 답이라는 보장은 할 수가 없다. 단, 어떤 특별한 구조가 있는 문제에 대해서는 탐욕 알고리즘이 언제나 최적해를 찾아낼 수 있다. 이러한 구조를 매트로이드라고 한다. 탐욕 알고리즘 문제를 해결하는 방법 1. 선택 절차 : 현재 상태에서의 최적의 해답을 선택한다. 2. 적절성 검사 : 선택된 해가 문제의 조건을 만족하는지 검사한다. 3. 해답 검사 : 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차(1단계)로 돌아가 위의 과정을 반복 탐욕 알고리즘로 최적해를 구할 수 있는 문제는 두 가지 조건을 만족해야 한다. 1. 탐욕..
여벌이 있는 학생(=옷이 2벌 이상인 학생)만 옷이 없는 학생에게 옷을 빌려줄 수 있다는 것에 MAP이나 배열을 사용하면 되겠다고 생각했다. map으로 한다하면 key에는 학생번호, value에는 옷 개수, 배열로 한다면 인덱스+1이 학생번호, 값이 옷 개수 map으로 풀어봤다. function solution(n, lost, reserve) { var answer = 0; var list = new Map(); //전체 학생들에게 체육복 1씩 증정 for(var i = 1; i 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1 } //여벌이 있는 학생들 +1 for(var i = 0; i < reserve.length; i++){ list.set(reserve[i], list.get(rese..