function solution(cards1, cards2, goal) {
let rmCount = 0;
goal.map((word) => {
if (cards1[0] === word) {
rmCount += 1;
cards1.splice(0, 1);
} else if (cards2[0] === word) {
rmCount += 1;
cards2.splice(0, 1);
} else {
return;
}
})
return rmCount === goal.length ? "Yes" : "No"
}
์ฒจ์ ์ด ์กฐ๊ฑด์ด ์๋ ์ค ๋ชจ๋ฅด๊ณ ,
cards1, 2 ์ length๊ฐ 0 ์ด๋ฉด yes ๋ฅผ return ํ๋ค.
์๋๋ ๋น๋๋์ด ์์ ์ฝ๋๋ฅผ ์ค์๋์ ๋ฐ๋ผ ๋ฐ๋ณต๋ฌธ์ ์์ ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ํด์ฃผ์ ์ฝ๋
function solution(cards1, cards2, goal) {
let rmCount = 0;
goal.map((word) => {
if (word === cards1[0] || word === cards2[0]) {
rmCount += 1;
} else {
return;
}
if (cards1[0] === word) {
cards1.splice(0, 1);
} else {
cards2.splice(0, 1);
}
})
return rmCount === goal.length ? "Yes" : "No"
}
=> rmCount += 1 ๊ฐ ํ๋ฒ๋ง ๋ค์ด๊ฐ๋ค.
=> || ์ฐ์ฐ์ ์ฌ์ฉ์ผ๋ก '๋ ์ค ํ๋์ ํฌํจ๋ ๊ฒฝ์ฐ' ๋ฅผ ๋ํ๋๋ค. ํฌํจ๋์ด ์์ง ์์ผ๋ฉด return ์ ํด์ค๋ค.
=> ํฌํจ๋์ด ์์ผ๋ฉด splice(0, 1) ์ผ๋ก cards ๋ฐฐ์ด ์์ฒด๋ฅผ ๋ณํํ๋ค. (๋งจ ์ 1๊ฐ๋ง ์ ๊ฑฐ)
๋ง์ง๋ง์ ์ด์ ์ฝ๋์ฒ๋ผ ์ ๊ฑฐํ count ๊ฐ goal ์ length ์ ๊ฐ๋ค๋ฉด Yes ๋ฅผ return ํ๋ค.
+ ์ฌ์ค length ์ ์ง์ฐฉํ์ง ์์๋ ๋๋ค.
map ์ ์ฌ์ฉํ์ง ์๊ณ for ๋ฌธ์ ์ฌ์ฉํ๋ค๋ฉด ๋ฐ๋ก return ์ ํด์ค ์ ์๋ค.
function solution(cards1, cards2, goal) {
for(const word of goal){
if(word !== cards1[0] && word !== cards2[0]) return "No"
if(word === cards1[0]) cards1.shift();
if(word === cards2[0]) cards2.shift();
}
return "Yes";
}
every ์ shift ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ ๊ฒ ํ ์ค๋ก๋ ๊ฐ๋ฅํ๋ค.
const solution = (cards1, cards2, goal) => goal.every(word => word === cards1[0] ? cards1.shift() : word === cards2[0] ? cards2.shift() : false) ? "Yes" : "No";