[level 2] N개의 최소공배수
·
알고리즘/JavaScript
문제 풀이 코드 const calcuGCD = (n, m) => { return n % m == 0 ? m : calcuGCD(m, n % m); }; function solution(arr) { let gcd = calcuGCD(arr[0], arr[1]); let lcm = (arr[0] * arr[1]) / gcd; for (let i = 2; i < arr.length; i++) { gcd = calcuGCD(lcm, arr[i]); lcm = (lcm * arr[i]) / gcd; } return lcm; } 풀이 과정 여러 수의 최소공배수를 구하는 방법은 다음과 같다. 1. A 와 B 의 최소공배수를 구한다. 2. 1의 최소공배수와 C의 최소공배수를 구한다. 3. 2의 최소공배수와 D의 최소공..
[level 2] 최솟값 만들기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(A,B){ let a = A.sort((a,b) => a - b); let b = B.sort((a,b) => a - b).reverse(); let sum = 0; for (let i = 0; i < a.length; i++) { sum = sum + (a[i] * b[i]); } return sum; } 풀이 과정 우선, A 배열과 B 배열을 모두 정렬하되, A배열은 오름차순, B 배열은 내림차순으로 정렬 하였다, 이렇게 한 이유는 문제에서 각 요소의 곱을 모두 더하여 최솟값을 만드는 문제였다, 따라서 하나의 배열내의 최대값과, 또 다른 배열내의 최소값을 곱해 모두 더하면 그게 최소값이 될것이다. 이렇게 정렬한 후, for 루프를 통해 각 요소의 곱을 ..
[level 2] JadenCase 문자열 만들기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(s) { return s.split(" ").map(item => { if(item !== '') return item[0].toUpperCase() + item.substr(1).toLowerCase() }).join(" ") } 풀이 과정 문자열을 공백 기준으로 우선 나누고, map 메서드를 통해 해당 인덱스가 공백이 아닌경우 ( ' ' 으로만 나누어진 경우가 이에 해당 ) 해당 인덱스의 요소의 첫 문자만 대문자로 치환하고, 이후의 문자들을 붙여 반환하였다, 마지막으로 join 을 통해 나누어진 배열을 다시 하나의 문자열로 구성하였다. 처음 문제를 풀때 오류가 발생했는데 원인이 바로 공백으로만 나누어진 경우였다. 따라서 if 구절을 통해 공백이 아닌 경..
[level 1] 완주 하지 못한 선수
·
알고리즘/JavaScript
문제 풀이 코드 function solution(participant, completion) { let i; completion.sort(); participant.sort(); for (i = 0; i _.find(_=>!$[_..
[level 1] 로또의 최고 순위와 최저 순위
·
알고리즘/JavaScript
문제 풀이 코드 function solution(lottos, win_nums) { let count = 0; let point = []; for (let i = 0; i a - b); } 풀이 과정 for 루프를 각각 두번 돌려 배열에 순위를 할..