[level 1] 두 개 뽑아서 더하기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(numbers) { var answer = new Set(); for (let i = 0; i a - b); } 풀이 과정 문제를 보자마자 Set 가 생각이 났다. 사실 자바스크립트에서 Set를 공부한 적은 없지만, 객체지향이라면 있을 것 같았다. Set는 중복없는 콜렉션을 이야기 한다. 입력으로 들어온 배열의 모든 요소를 각각 더해주어야 하고, 중복을 제거하고, 오름차순으로 정렬해서 반환해..
[level 1] 2016년
·
알고리즘/JavaScript
문제 풀이 코드 function solution(a, b) { const monthDays = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; const weekDay = ['FRI','SAT','SUN','MON','TUE','WED','THU']; let days = 0; for (let i = 0; i < a - 1; i++) days += monthDays[i]; days += b; const checkDay = days % 7 - 1 return weekDay[checkDay < 0 ? 6 : checkDay]; } 풀이 과정 우선, 각 달마다 일수를 monthDays 배열에 담아 주었다, 그리고 요일의 정보를 weekDay 배열에 담아 주었다. 문제가 ..
[level 1] 최소직사각형
·
알고리즘/JavaScript
문제 풀이 코드 function solution(sizes) { const largeNum = sizes.map((item) => (item[0] (item[0] > item[1] ? item[1] : item[0])); return Math.max(...largeNum) * Math.max(...smallNum); } 풀이 과정 20분 정도를 어떻게 풀어야 할지 고민을 했다. 해당 문제는 사고력 문제인거 같았고, 스스로 아무리 고민해도 해결할 수 없을것 같았다. 그래서 구글링을 통해 개념만 파악했다. 해당 문제의 해결 방법은 다음과 같다. 1. 각 2차원 배열 내에서, 각 요소마..
[level 1] 부족한 금액 계산하기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(price, money, count) { let total = 0; for (let i = 1; i 0 ? tmp : 0; } 이분을 for 문을 돌리지 않았고, 가우스 공식을 이용하셨다. 가우스 공식이란 1 ~ n 까지의 합을 구할때, (n * (n + 1)) / 2 를 하면 합을 알수있다는 공식이다. 따라서 count * (count + 1) / 2 에다가, 처음의 가격 Price 를 곱해 price * count * (count + 1) / 2 를 수행한다. 공식숙지의 중요성
[level 1] 나머지가 1이 되는 수 찾기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(n) { const start = n % 2 === 0 ? 3 : 2; for (let i = start; i < n; i += 2) { if (n % i === 1) return i; } } 풀이 과정 간단한 문제였다, 다만 1부터 증가시켜 찾기엔 너무 비효율 적이라고 생각했다. 왜냐하면 n이 짝수라면, 짝수로 나누었을때는 무조건 1이 나올수가 없다, 반대로 n이 홀수라면 짝수로 나누어야지만, 1이 나올것이다. 이에 따라 start 값을 짝수일경우 3으로, 홀수일경우 2 로 설정하여 2씩 증가시키며 값을 찾아 나갔다.