[Algorithm 011] JS - topK
Q. nums는 숫자로 이루어진 배열입니다. 가장 자주 등장한 숫자를 k 개수만큼 return해주세요. nums = [1,1,1,2,2,3] k = 2 return [1,2] nums = [1] k = 1 return [1] A. 답 nums = [1,1,2,2,2,3]; k = 2; function topK(nums, k) { const obj = {}; nums.forEach((x) => { if(obj[x]) { obj[x] = obj[x] + 1; }else{ obj[x] = 0 + 1; } }); let arr = Object.values(obj).sort((a, b) => b - a).slice(0, k); const result = []; for(i = 0; i < arr.length;i++..
2021. 10. 3.
[Algorithm 010] JS - moreThanHalf
Q. 숫자로 이루어진 배열인 nums를 인자로 전달합니다. 숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요. 예를 들어, nums = [3,2,3] return 3 nums = [2,2,1,1,1,2,2] return 2 조건 : nums 배열의 길이는 무조건 2개 이상 A. 처음 답 function mortThanHalf (nums) { let obj = {}; nums.forEach((x)=>{ obj[x] = (obj[x] || 0)+1; }) const value = Object.values(obj).sort((a,b) => {return b - a})[0]; const max = Object.keys(obj).filter((a)=>obj[a]===v..
2021. 10. 2.
[Algorithm 009] JS - romanToNum
Q. 로마자에서 숫자로 바꾸기 1~3999 사이의 로마자 s를 인자로 주면 그에 해당하는 숫자를 반환 Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 로마자를 숫자로 읽는 방법은 로마자를 왼쪽부터 차례대로 더하면 됨 III = 3 XII = 12 XXVII = 27 그런데 4를 표현할 때는 IIII가 아니라 IV 뒤의 숫자에서 앞의 숫자를 빼주는 형식 예) 9는 IX I는 V, X앞에 와서 4, 9 X는 L, C앞에 와서 40, 90 C는 D, M앞에 와서 400, 900 처음 접근 법 function romanToNum(s) { const symbolArr= ['I', 'V', 'X', 'L', 'C', 'D', 'M']; const numValue = [1, ..
2021. 9. 27.