์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ฝ๋ ํฌ๋ฉง
- ์๊ณ ๋ฆฌ์ฆ
- icecandidate
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- React
- DP
- JavaScript
- ์นด์นด์ค
- TypeScript
- js
- ๊ณผ์ ํ ์คํธ
- router v6
- svgํ์ผ ๋ค๋ฃจ๊ธฐ
- ๋์ ๊ณํ๋ฒ
- ๋๋๊ทธ ์ด๋ฒคํธ
- Redux toolkit
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ์นด์นด์ค์ฑ์ฉ
- ๋ถ์คํธ์ปจํผ๋ฐ์ค
- ์ด๋ฏธ์ง ์์
- custom hook
- Node.js
- ๋ฐฑ์ค
- ์ฝํ
- ์ฝ๋ฉํ ์คํธ
- ๋ธ๋ฃจํธํฌ์ค
- ๋ฆฌ๋์ค ํดํท
- ๋ถ์คํธ์บ ํ์น๋ชจ๋ฐ์ผ
- ์ด๋ถํ์
- Today
- Total
๐ฅ dev-ruby
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํฌํธ๋ฆฌ - Lv.2 javascript <Summer&Winter Coding 2018> ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํฌํธ๋ฆฌ - Lv.2 javascript <Summer&Winter Coding 2018>
ruby_s 2021. 11. 24. 18:51๋ฌธ์ ์ค๋ช
์ ํ ์คํฌ์ด๋ ์ด๋ค ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋จผ์ ๋ฐฐ์์ผ ํ๋ ์คํฌ์ ๋ปํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ ํ ์คํฌ ์์๊ฐ ์คํํฌ → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ผ๋, ์ฌ๋๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์์ผ ํ๊ณ , ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ์คํํฌ๋ฅผ ๋ฐฐ์์ผ ํฉ๋๋ค.
์ ์์์ ์๋ ๋ค๋ฅธ ์คํฌ(ํ๋ง ๋ฑ)์ ์์์ ์๊ด์์ด ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์คํํฌ → ํ๋ง → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๊ฐ๋ฅํ์ง๋ง, ์ฌ๋ → ์คํํฌ๋ ๋ผ์ดํธ๋ ๋ณผํธ → ์คํํฌ → ํ๋ง → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ ํ ์คํฌ ์์ skill๊ณผ ์ ์ ๋ค์ด ๋ง๋ ์คํฌํธ๋ฆฌ1๋ฅผ ๋ด์ ๋ฐฐ์ด skill_trees๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ ๊ฐ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ์คํฌ์ ์ํ๋ฒณ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ฉฐ, ๋ชจ๋ ๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํฌ ์์์ ์คํฌํธ๋ฆฌ๋ ๋ฌธ์์ด๋ก ํ๊ธฐํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, C → B → D ๋ผ๋ฉด "CBD"๋ก ํ๊ธฐํฉ๋๋ค
- ์ ํ ์คํฌ ์์ skill์ ๊ธธ์ด๋ 1 ์ด์ 26 ์ดํ์ด๋ฉฐ, ์คํฌ์ ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- skill_trees๋ ๊ธธ์ด 1 ์ด์ 20 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- skill_trees์ ์์๋ ์คํฌ์ ๋ํ๋ด๋ ๋ฌธ์์ด์
๋๋ค.
- skill_trees์ ์์๋ ๊ธธ์ด๊ฐ 2 ์ด์ 26 ์ดํ์ธ ๋ฌธ์์ด์ด๋ฉฐ, ์คํฌ์ด ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
skill | skill_tree | return |
"CBD" | ["BACDE", "CBADF", "AECB", "BDA"] | 2 |
- "BACDE": B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฝ๋๋ค.
- "CBADF": ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
- "AECB": ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
- "BDA": B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
๋ด๊ฐ ํผ ํ์ด
function solution(skill, skill_trees) {
let result = skill_trees.length;
const in_skill = skill_trees.map((tree)=>tree.split('').filter((s)=>skill.includes(s)));
for(const skills of in_skill){
for(let i = 0; i< skills.length; i++){
if(skill[i] !== skills[i]){
result--;
break;
}
}
}
return result;
}
์ฒ์์๋ idx = 0๊ณผ isCorrect๋ผ๋ booleanํ ๋ณ์๋ฅผ ๋ฌ์
idx๋ฅผ ์ฆ๊ฐ ์ํค๋ฉด์ ํด๋น idx์ ์์นํ ์คํฌ์ด ๊ฐ์ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ isCorrect ๋ฅผ false๋ก ๋ณ๊ฒฝํ์ฌ
for๋ฌธ์ ๋ฒ์ด๋์ true์ผ ๊ฒฝ์ฐ๋ง result๋ฅผ ์ฆ๊ฐ ์ํค๋ ๋ฐฉ์์ด์๋๋ฐ,
booleanํ์ผ๋ก ํ๋จํ๋๊ฒ ๋ง์์ ์๋ค์๋ค... ์ข์ ์ฝ๋๋ ์๋ ๋๋
๊ทธ๋์ ๋ฐ๋๋ก result๋ฅผ ํธ๋ฆฌ์ ๊ฐ์๋งํผ ์ด๊ธฐํ๋ฅผ ํด๋๊ณ ํ๋์ฉ ๊ฐ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฆฌํฉํ ๋ง ํ๋ค.