프로그래머스 16

숫자 문자열과 영단어

아이디어 정규표현식 replace 쓰면되겠다 코드 function solution(s) { const result = s .replace(/zero/g, 0) .replace(/one/g, 1) .replace(/two/g, 2) .replace(/three/g, 3) .replace(/four/g, 4) .replace(/five/g, 5) .replace(/six/g, 6) .replace(/seven/g, 7) .replace(/eight/g, 8) .replace(/nine/g, 9); return Number(result); } 다른 방식의 코드 (split과 join활용) function solution(s) { let numbers = ["zero", "one", "two", "three",..

신규 아이디 추천

아이디어 정규표현식을 쓰는것. 처음 코드 function solution(new_id) { new_id = new_id .toLowerCase() .replace(/[^a-z0-9-_.]/g, "") .replace(/\.\.+/g, ".") .replace(/^\.|\.$/g, ""); if (new_id === "") new_id = "a"; if (new_id.length >= 16) new_id = new_id.slice(0, 15); new_id = new_id.replace(/\.$/, ""); while (new_id.length < 3) { new_id += new_id[new_id.length - 1]; } return new_id; } 더 좋은 코드 function solution(ne..

로또의 최고 순위와 최저 순위

아이디어 최소 당첨 갯수 = 두 배열에서 일치하는 숫자 최대 당첨 갯수 = 최소 당첨 갯수 + lottos의 0의 갯수 6개 일치가 1등 5개 일치가 2등 ... 이므로 등수는 7 - 일치갯수 (하지만 0개 일치는 6등임) 코드 function solution(lottos, win_nums) { let matchCount = 0; let zeroCount = 0; // 두 배열에서 일치하는 숫자 갯수 구함 lottos.forEach((ele) => { if (win_nums.includes(ele)) matchCount++; // lottos 배열에서 0의 갯수 구함 zeroCount = lottos.filter((ele) => 0 === ele).length; }); let { max, min } = ..

최소직사각형

아이디어 사각형을 회전시킬 수 있으니까 가로와 세로의 구분은 무의미함 하나의 사각형의 가로와 세로중 더 긴쪽을 예를들어 가로로 몰아놓고 가로중 가장 큰 값과 세로중 가장 큰 값을 곱하면 되겠다 코드 function solution(sizes) { let matrix = [], largeW = 0, largeH = 0 for (let i = 0; i < sizes.length; i++) { if (sizes[i][0] < sizes[i][1]) matrix.push([sizes[i][1], sizes[i][0]]); else matrix.push(sizes[i]); if (largeW < matrix[i][0]) largeW = matrix[i][0]; if (largeH < matrix[i][1]) la..

예산

초기 코딩 function solution(d, budget) { var answer = 0; return answer; } 첫 아이디어 우선 신청한 금액d를 오름차순으로 바꿔주고 budget에서 빼면서 카운트함 하지만 3에서 3을 빼면 1이 늘어나지만 3에서 4는 못빼게 안에 if로 bugdet이 0이상일때를 만들어둠 나의 코드 function solution(d, budget) { var answer = 0; let count = 0; d.sort(function(a, b) { return a - b; }) for(let i = 0 ; 0 =0) count++; } return count; }