const getPrefix = strs => {
let str = strs[0];
if(!str) return '';
let value = '';
for(let i=0;i<strs.length;i++) {
value += str[i];
for(j=0;j<strs.length;j++) {
if(!strs[j].includes(value)) {
return value.substring(0,i)
}
}
}
return value;
}
๋ฐ๋ณต๋ฌธ ์ค์ฒฉ ํตํด์, ๋ฐฐ์ด ์์ ๋ชจ๋ ์์๋ฅผ test ํด๋ณผ ์ ์๋ค.
์์ฉํ๊ธฐ ์ข์ผ๋๊น ์ตํ๋์
function romanToNum(s) {
const rom = {
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000
};
const strs = s.split("").map((item) => rom[item]);
console.log(strs);
let item = 0;
for (let i = 0; i < strs.length; i++) {
if (strs[i] < strs[i + 1]) {
item -= strs[i];
console.log('๋ง์ด๋์ค',item)
}else {
item += strs[i];
console.log(item)
}
}
return item
}
๊ฐ์ฒด ์ด์ฉํด์ ๋ด๋ ๊ณผ์ ์ด ์ง์ง ์ข๋ค.
์์์๋ถํฐ ๋ญ๊ฐ๋ฅผ ํ ๋๋ ๋์ ๊ฐ ์ฐ๋๊ฒ ์ ์ผ ์ฌ์ด ๊ฑฐ ๊ฐ๋ค.
์ค๋ณต์ธ๊ธฐ ํ์ฉํ๋ ๋ฌธ์ .
const nums = [1,1,1,2,2,3];
function topK(num, k) {
const countMap = new Map();
let array =[] ;
let result =[];
//์ซ์๋ณ ๋ฑ์ฅ ํ์ -> ์ค๋ณต๋๋ ์ซ์๋ง ๋ณผ์์์ผ๋๊น
//๋ง์ฝ set์ ์์ผ๋ฉด 1์ ๋ํด์ฃผ๊ณ ์๋๋ฉด 0์ ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์งํ
for(let i =0; i<num.length;i++){
countMap.set(num[i],(countMap.get(num[i])||0)+1) }
//entries arrat.from ์ด์ฉํด๋ณด๊ธฐ
// ๋ฐฐ์ด ๊ธธ์ด๊ฐ ํ๋๋ฉด ๊ทธ๋ฅ ๋ฐ๋ก ๋ฆฌํด
if (num.length ===1&& k===1) {
return num;
} else {
//k๋ map์ฌ์ด์ฆ ๊ฐ์ผ๋ฉด ํค๋ง ๋ฐ๋ก ์๋๋ฉด ํค๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ง๋ค์ด์ด์ฉ
// ํค ๋ด๋ฆฝ์ฐจ์์ผ๋ก ํ๋๊ฑฐ ์ฐพ์!
const sortedNumDesc = new Map([...countMap].sort((a, b) => b[1] - a[1]));
if (countMap.size===k){
return [...countMap.keys()]
}else {
array=[...sortedNumDesc.keys()]
for (let j = 0; j<k ; j++){
result.push(array[j])
}return result
}
}
}
topK(nums)
map ์ฐ๋ ์ด์ ๋ key ๊ฐ๋ง ๋ถ๋ฅผ ์๋ ์๊ณ , ํค๊ฐ์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ ์ ์๋ค๋ ๊ฑด๋ฐ, ํค๊ฐ ๋ด๋ฆผ์ฐจ์๋ง ํ ์ค ์๋ฉด array.entries ์จ๋ ๋ ๊ฒ ๊ฐ๋ค .