๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„์—” ๊ณต๋ถ€/๐Ÿซง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€

[์•Œ๊ณ ๋ฆฌ์ฆ˜ || ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นด๋“œ ๋ญ‰์น˜

728x90
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";

 

 

 

728x90
๋ฐ˜์‘ํ˜•