๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/Algorithm

[Level 1] ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 3. 25.

 

 

Algorithm

-  ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ -

 


 

๋ฌธ์ œ

์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด participant์™€ ์™„์ฃผํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด completion์ด ์ฃผ์–ด์งˆ ๋•Œ, ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

- completion์˜ ๊ธธ์ด๋Š” participant์˜ ๊ธธ์ด๋ณด๋‹ค 1 ์ž‘์Šต๋‹ˆ๋‹ค.

- ์ฐธ๊ฐ€์ž์˜ ์ด๋ฆ„์€ 1๊ฐœ ์ด์ƒ 20๊ฐœ ์ดํ•˜์˜ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

- ์ฐธ๊ฐ€์ž ์ค‘์—๋Š” ๋™๋ช…์ด์ธ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

participant completion return
["leo", "kiki", "eden"] ["eden", "kiki"] "leo"
["marina", "josipa", "nikola", "vinko", "filipa"] ["josipa", "filipa", "marina", "nikola"] "vinko"

 

๋ฌธ์ œ ํ’€๊ธฐ

 

ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์‚ฌ์‹ค ๋ฌธ์ œ๋งŒ ๋ดค์„๋•Œ๋Š” ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์„๊ฑฐ๋ผ๊ณ  ์˜ˆ์ƒํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ ‘๊ทผํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ด ๊ฝค๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ ธ์—ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค.

 

๋ฌธ์ œ์—์„œ๋Š” participant์™€ completion์„ ์„œ๋กœ ๋น„๊ตํ•˜์—ฌ ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ํ•œ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ๋ฆฌํ„ดํ•˜๋Š” ๋ฌธ์ œ์ธ๋ฐ ์ด๋•Œ ๋‚˜๋Š” ๋ฌธ์ œ์—์„œ ๋™๋ช…์ด์ธ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์ง€ ๋ชปํ•ด์„œ completion์•ˆ์— ์ด๋ฏธ ์ด๋ฆ„์ด ์žˆ์œผ๋ฉด ๊ทธ๋ƒฅ ๋™๋ช…์ด์ธ ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ๋˜๋Š” ์ค„ ์•Œ์•˜์—ˆ๋Š”๋ฐ ๋’ค๋Šฆ๊ฒŒ ์•Œ์•„์ฐจ๋ฆฌ๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ”๋‹ค.

 

function solution(participant, completion) {
    for(let i = 0; i < completion.length; i++) {
        for(let j = 0; j < participant.length; j++) {
            if(completion[i] === participant[j]) {
                participant[j] = null;
                break;
            }
        }
    }
    return participant.filter(el => el !== null)[0];
}

 

์ผ๋‹จ ๋‚ด๊ฐ€ ์ฒ˜์Œ์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋กœ ์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ฃผ๋ฉด์„œ ์„œ๋กœ ๊ฐ™์€ ๊ฐ’์„ ์ฐพ์•„ null๋กœ ๊ฐ’์„ ๋ฐ”๊ฟ”๋ฒ„๋ฆฌ๊ณ  ๋ฐ˜๋ณต๋ฌธ์„ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋  ๊ฒฝ์šฐ์— null์ด ์•„๋‹Œ ๊ฐ’์„ filter ์ฒ˜๋ฆฌ ํ•ด์ค˜์„œ ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์—ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์ฝ˜์†”์ฐฝ์—์„œ๋Š” ์ œ๋Œ€๋กœ ๋œ ๊ฐ’์ด ๋‚˜์˜ค๋Š”๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ๋Š” ํšจ์œจ์„ฑ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค.

 

์•„๋ฌด๋ž˜๋„ filter๋‚˜ ๋ฐ˜๋ณต๋ฌธ ๋“ฑ์„ ํ†ตํ•ด์„œ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜๋‹ค ๋ณด๋‹ˆ ๋ถˆํ•„์š”ํ•œ ํšŒ์ „๋„ ๋ฐœ์ƒ๋  ์ˆ˜๋„ ์žˆ์–ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•˜๋‹ค.

 

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ์—” ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜๊ฒŒ  ๋˜์—ˆ๋Š”๋ฐ ์ผ๋‹จ ๋‘ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ •๋ ฌ์„ ํ•œ ๋‹ค์Œ์— for๋ฌธ์„ ํ†ตํ•ด์„œ ๊ฐ™์€์œ„์น˜์— ๊ฐ’์€ ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ์„ ํ•˜๊ณ  ๋‹ค๋ฅผ ๊ฒฝ์šฐ์—” ๊ฐ’์„ ์ž‘์„ฑํ•ด ์ฃผ๋ฉด ๋ฐ”๋กœ ํ•ด๋‹น ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•˜์˜€๋”๋‹ˆ ๋ฌธ์ œ๊ฐ€ ๊ฝค๋‚˜ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋‚˜๊ฐ€๋ฉด์„œ ํšจ์œจ์„ฑ๋˜ํ•œ ์ค‘์š”ํ•˜๋‹ค๋Š”๊ฒƒ์„ ๋‹ค์‹œํ•œ๋ฒˆ ๋Š๋ผ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€