본문 바로가기

기초다지기/JS 코딩테스트105

javaScript 등차수열 및 등비수열의 다음 항 찾기 문제 주어진 배열에서 다음으로 올 숫자를 찾는 문제 (등차수열 또는 등비수열만 있다) 풀이 function solution(common) { const Last = common[common.length-1]; if(common[1] / common[0] === common[2] / common[1]){ return common[1] / common[0] * Last } return common[1] - common[0] + Last console.log(common[2] / common[1]) } Last 를 사용하여 주어진 배열의 마지막 원소 저장 등비 수열인지 확인하기 위해 common[1] / common[0] === common[2] / common[1] 사용 등비수열이라면 다음항 계산하고 반환 .. 2024. 1. 4.
javaScript 중복 제거후 남은 종류의 수 문제 폰케몬의 종류를 최대한 많이 선택하는 것. 중복을 제거한 후 남은 종류의 수가 선택 가능한 최대 수보다 크다면 최대 선택 가능 수 만큼 폰켓몬ㅇ 선택할 수 있음. 최종적으로 선택한 폰켓몬 종류 수 반환하기 풀이 function solution(nums) { const uniqueNums = [...new Set(nums)]; const maxSelectCount = nums.length / 2; const answer = Math.min(uniqueNums.length, maxSelectCount); return answer; } Set 중복된 폰켓몬을 제어한 수, 배열로 변환 maxSelectCount : 선택 가능한 최대 폰켓몬 수 계산 answer 중복이 제거된 폰켓몬의 종류 수와 선택 가능한.. 2024. 1. 3.
javaScript 주어진 조건에 따라 매칭되는 경우의 수 문제 원하는 제품과 수량이 할인되는 날짜에 맞게 순서대로 나열된 할인 제품이 주어졌을 때, 해당 제품과 수량으로 10일 동안 매일 할인 받아 회원 가입이 가능한 날짜의 총 일수를 반환 풀이 function solution(want, number, discount) { const MAX_SLICE_LENGTH = 10; const isMatch = (discount) => { const wantMap = discount.reduce((acc, d) => { acc[d] = (acc[d] || 0) + 1; return acc; }, {}); return want.every((w, i) => wantMap[w] === number[i]); }; let answer = 0; for (let i = 0; i i.. 2024. 1. 2.
javaScript 주어질 월과 일에 해당하는 요일 구하기 문제 1월 1일이 금요일일 때 a월 b일의 요일을 구하여라 풀이 function solution(a, b) { const daysInMonth = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; const totalDays = daysInMonth.slice(0, a).reduce((acc, cur) => acc + cur, 0) + b - 1; const dayOfWeek = totalDays % 7; const days = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"]; return days[dayOfWeek]; } dayInMonth : 각 월의 일 수를 배열로 저장 totalDays : 1월 1일이 금요일이므.. 2023. 12. 28.
javaScript 괄호 회전문제 해결하기 문제 문자열 s를 왼쪽으로 회전시켰을 때, 얼마나 많은 경우에 해당 문자열이 올바른 괄호 문자열이 되는지 계산하여라 풀이 function solution(s) { const getIsCorrectString = (stringsArr) => { const correctSet = { ']': '[', ')': '(', '}': '{' }; const stack = []; let isCorrectString = true; stringsArr.forEach((str) => { if (str in correctSet) { if (correctSet[str] === stack.at(-1)) stack.pop(); else isCorrectString = false; } else { stack.push(str); }.. 2023. 12. 27.
javaScript 부분 배열 합 계산 문제 원형 수열에서 가능한 서로 다른 부분 수열의 합을 계산하는 방법 풀이 function solution(elements) { var n = elements.length; var sums = new Set(); for (let i = 0; i < n; i++) { let sum = 0; for (let j = i; j < i + n; j++) { sum += elements[j % n]; sums.add(sum); } } return sums.size; } sums 이라는 Set 생성하여 중복된 합을 허용하지 않는다. for 각 원소에서 시작하는 부분 수열 검사 j 현재 시작 인덱스부터 시작해 수열의 끝까지의 부분 수열 계산 sum += elements[j % i] 현재 부분 수열의 합을 계산 하는 부.. 2023. 12. 26.