์คํฐ๋๊ฐ 8์๋ผ ์ผ์ด๋์๋ง์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํธ๋๊น ์ฌ์ฌ ๋จธ๋ฆฌ๊ฐ ์๋์๊ฐ๋ค.
<for๋ฌธ ์ฌ์ฉ>
function solution(keymap, targets) {
const count = {};
for (const key of keymap) {
[...key].forEach((char, i) => {
if (!count[char]) {
count[char] = i + 1;
} else {
if (count[char] > i) {
count[char] = i + 1;
}
}
})
}
const result = targets.map(target => {
let sum = 0;
for (let i = 0; i < target.length; i++) {
if (!count[target[i]]) {
sum = -1;
break;
} else {
sum += count[target[i]];
}
}
return sum;
})
return result;
}
<reduce ์ฌ์ฉ>
function solution(keymap, targets) {
const count = {};
for (const key of keymap) {
[...key].forEach((char, i) => {
if (!count[char]) {
count[char] = i + 1;
} else {
if (count[char] > i) {
count[char] = i + 1;
}
}
})
}
const result = [];
targets.forEach(target => {
const arr = [...target];
result.push(arr.reduce((acc, cur) => {
if (count[cur]) {
return acc + count[cur];
} else {
result.push(-1);
arr.splice(1);
}
}, 0))
})
return result.filter(v => v !== undefined)
}
๋จผ์ obj ๋ก ๊ฐ ๋ฐฐ์ด์์ ์์ ์๋ฅผ ๋ฃ์๋ค.
์ฌ๊ธฐ์๋ ๋ญ๊ฐ ๊ผฌ์๋๋ฐ index ๋ฅผ value ๊ฐ์ผ๋ก ๋ฃ์ ํ,
๋ง์ฝ key ๋ก ์ฐพ์ value ๊ฐ์ด ์๋ค๋ฉด ์๋ก ๋ฃ์ด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์งฐ๋ค.
๊ทผ๋ฐ ์๊พธ value ๊ฐ ์๋๋ฐ๋ value ๊ฐ์ด ๊ฐฑ์ ๋๋ ๊ฒ ์๋๊ฐ!
console.log ๋ก ์ฐ์ด์ ํ๋ํ๋ ๋ณํํ๋ ๊ณผ์ ์ ๋ณด๋,
value ๊ฐ์ 0 ์ด ๋ค์ด์๋ ๊ฒ๋ !value ๋ผ๊ณ ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ด์๋ค.
์ ์ด์ ์ ๋์น๋ค๋...!
๊ทธ๋์ i+1 ๊ฐ์ผ๋ก ๊ณ ์ณค๋ค.
๋ฌธ์ ๋ ์๋ ๋ก์ง ์ง๋ค๊ฐ ๋ฉํด์ ธ์ ์๊ฐ์ด ๋๋ฌด ์ค๋๊ฑธ๋ ธ๋ค.
๊ณ ์ฐจํจ์๋ฅผ ๋๋ฒ ์จ๋๊ณ return ํ๋ฉด ๋น์ฐํ ์ ์ฒด ๋ก์ง์์ ๋ชป๋น ์ ธ์ค์ง ๋ฐ๋ณด์ผ......
reduece ์ฐ๋ค๊ฐ ์ฅ์ฅ?? ์ธ์๋ ------------ ๋์ ์ง ^_^
๋คํํ for ๋ฌธ์ผ๋ก ๊ณ ์ณ์ break ๋ฅผ ์ฌ์ฉํ๋ค.
reduece๋ ์ ์ฉ๋๋ arr ๋ฅผ ๋ณํ์ํค๋ฉด break ๋๊ธฐ ๋๋ฌธ์ splice ๋ฅผ ์ฌ์ฉํ ๋ฐฉ์์ผ๋ก ๋น ์ ธ๋์ฌ ์ ์๋ค.
๋์ undefined ๊ฐ ๋ฐฐ์ด์ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์, undefined ๋ฅผ ๊ฑธ๋ฌ์ค ๊ฒฐ๊ณผ ๋ฐฐ์ด์ return ํด์ค์ผํ๋ค.
์์ฆ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ์๋ดค๋๋ ๋ฐ์ ์ด ์๋ ๊ฒ ๊ฐ๋ค.
function solution(keymap, targets) {
const answer = [];
const map = {}
for (const items of keymap) {
items.split('').map((item, index) => map[item] = (map[item] < index+1 ? map[item] : index+1))
}
for (const items of targets) {
answer.push(items.split('').reduce((cur, item) => cur += map[item], 0) || -1)
}
return answer;
}
....
์ด๋ ๊ฒ ๊ฐ๋จํ ํ ์ ์๋๋ฐ ์๋ฌด๋ฃฉํด์ง....
๋ชจ๋ฅ๋ค๋ฅผ ๋ค์ ๋ณผ ๋๊ฐ ๋ ๊ฒ ๊ฐ๋ค....
'ํ์ ๊ณต๋ถ > ๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ํฌ๋ ์ธ ์ธํ ๋ฝ๊ธฐ ๊ฒ์ (0) | 2023.07.27 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] How do you improve? ๋ฌธ์ ํด๊ฒฐ ์ ๊ทผ๋ฒ (0) | 2023.07.20 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2023.07.17 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์ผ์ชฝ ์ค๋ฅธ์ชฝ (0) | 2023.07.16 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (0) | 2023.07.14 |