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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„

by ์ฝ”ํŒŒ์นด 2022. 12. 7.
728x90

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ > ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„


๐Ÿ’ฉ ๋ฌธ์ œ ์„ค๋ช…

๊ฒŒ์ž„๊ฐœ๋ฐœ์ž์ธ "์ฃ ๋ฅด๋””"๋Š” ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ธฐ๊ณ„๋ฅผ ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
"์ฃ ๋ฅด๋””"๋Š” ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ™”๋ฉด ๊ตฌ์„ฑ๊ณผ ๊ทœ์น™์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒŒ์ž„ ๋กœ์ง์— ๋ฐ˜์˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€1 ๊ฒŒ์ž„ ํ™”๋ฉด์€ "1 x 1" ํฌ๊ธฐ์˜ ์นธ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ "N x N" ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐ ๊ฒฉ์ž์ด๋ฉฐ ์œ„์ชฝ์—๋Š” ํฌ๋ ˆ์ธ์ด ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ์—๋Š” ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. (์œ„ ๊ทธ๋ฆผ์€ "5 x 5" ํฌ๊ธฐ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค). ๊ฐ ๊ฒฉ์ž ์นธ์—๋Š” ๋‹ค์–‘ํ•œ ์ธํ˜•์ด ๋“ค์–ด ์žˆ์œผ๋ฉฐ ์ธํ˜•์ด ์—†๋Š” ์นธ์€ ๋นˆ์นธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธํ˜•์€ "1 x 1" ํฌ๊ธฐ์˜ ๊ฒฉ์ž ํ•œ ์นธ์„ ์ฐจ์ง€ํ•˜๋ฉฐ ๊ฒฉ์ž์˜ ๊ฐ€์žฅ ์•„๋ž˜ ์นธ๋ถ€ํ„ฐ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์‚ฌ์šฉ์ž๋Š” ํฌ๋ ˆ์ธ์„ ์ขŒ์šฐ๋กœ ์›€์ง์—ฌ์„œ ๋ฉˆ์ถ˜ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ธํ˜•์„ ์ง‘์–ด ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง‘์–ด ์˜ฌ๋ฆฐ ์ธํ˜•์€ ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์ด๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ ๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ฐ€์žฅ ์•„๋ž˜ ์นธ๋ถ€ํ„ฐ ์ธํ˜•์ด ์ˆœ์„œ๋Œ€๋กœ ์Œ“์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ์€ [1๋ฒˆ, 5๋ฒˆ, 3๋ฒˆ] ์œ„์น˜์—์„œ ์ˆœ์„œ๋Œ€๋กœ ์ธํ˜•์„ ์ง‘์–ด ์˜ฌ๋ ค ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์€ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€2 ๋งŒ์•ฝ ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜• ๋‘ ๊ฐœ๊ฐ€ ๋ฐ”๊ตฌ๋‹ˆ์— ์—ฐ์†ํ•ด์„œ ์Œ“์ด๊ฒŒ ๋˜๋ฉด ๋‘ ์ธํ˜•์€ ํ„ฐ๋œจ๋ ค์ง€๋ฉด์„œ ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์œ„ ์ƒํƒœ์—์„œ ์ด์–ด์„œ [5๋ฒˆ] ์œ„์น˜์—์„œ ์ธํ˜•์„ ์ง‘์–ด ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์œผ๋ฉด ๊ฐ™์€ ๋ชจ์–‘ ์ธํ˜• ๋‘ ๊ฐœ๊ฐ€ ์—†์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€3 ํฌ๋ ˆ์ธ ์ž‘๋™ ์‹œ ์ธํ˜•์ด ์ง‘์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋Š” ์—†์œผ๋‚˜ ๋งŒ์•ฝ ์ธํ˜•์ด ์—†๋Š” ๊ณณ์—์„œ ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚ค๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๋Ÿฐ ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ”๊ตฌ๋‹ˆ๋Š” ๋ชจ๋“  ์ธํ˜•์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฌ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. (๊ทธ๋ฆผ์—์„œ๋Š” ํ™”๋ฉดํ‘œ์‹œ ์ œ์•ฝ์œผ๋กœ 5์นธ๋งŒ์œผ๋กœ ํ‘œํ˜„ํ•˜์˜€์Œ)
๊ฒŒ์ž„ ํ™”๋ฉด์˜ ๊ฒฉ์ž์˜ ์ƒํƒœ๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด board์™€ ์ธํ˜•์„ ์ง‘๊ธฐ ์œ„ํ•ด ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚จ ์œ„์น˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด moves๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ํฌ๋ ˆ์ธ์„ ๋ชจ๋‘ ์ž‘๋™์‹œํ‚จ ํ›„ ํ„ฐํŠธ๋ ค์ ธ ์‚ฌ๋ผ์ง„ ์ธํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ’ฉ ์ œํ•œ ์กฐ๊ฑด

โ˜๏ธ board ๋ฐฐ์—ด์€ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ํฌ๊ธฐ๋Š” "5 x 5" ์ด์ƒ "30 x 30" ์ดํ•˜์ž…๋‹ˆ๋‹ค.
โœŒ board์˜ ๊ฐ ์นธ์—๋Š” 0 ์ด์ƒ 100 ์ดํ•˜์ธ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ฒจ์žˆ์Šต๋‹ˆ๋‹ค.
    โž• 0์€ ๋นˆ ์นธ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    โž• 1 ~ 100์˜ ๊ฐ ์ˆซ์ž๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ธํ˜•์˜ ๋ชจ์–‘์„ ์˜๋ฏธํ•˜๋ฉฐ ๊ฐ™์€ ์ˆซ์ž๋Š” ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
๐Ÿ‘Œ moves ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
๐ŸคŸ moves ๋ฐฐ์—ด ๊ฐ ์›์†Œ๋“ค์˜ ๊ฐ’์€ 1 ์ด์ƒ์ด๋ฉฐ board ๋ฐฐ์—ด์˜ ๊ฐ€๋กœ ํฌ๊ธฐ ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

๐Ÿ’ฉ ๋ฌธ์ œ ํ’€์ด

function solution(board, moves) {
    let bucket = []; // ๋ฐ”๊ตฌ๋‹ˆ ใ…Ž.ใ…Ž
    let count = 0; // ์‚ฌ๋ผ์ง€๋Š” ์ธํ˜• ๊ฐœ์ˆ˜
    for(i=0; i<moves.length; i++){
        for(j=0; j<board.length; j++){
            if(board[j][moves[i]-1]){
                bucket.push(board[j][moves[i]-1]); // ๋ฝ‘์•„์„œ ๋ฐ”๊ตฌ๋‹ˆ์— ๋„ฃ๊ธฐ
                board[j][moves[i]-1] = 0; // ๋ฝ‘์€ ์ธํ˜• ์‚ญ์ œ
                if(bucket[bucket.length-1] == bucket[bucket.length-2]){
                    bucket.pop();
                    bucket.pop();
                    count+=2; // ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ๊ฐ™์€ ์ธํ˜• ์ œ๊ฑฐ
                }
                break;
            }
        }
    }
    return count;
}

ํ’€๋‹ค๊ฐ€ ์ ์  ๋จธ๋ฆฟ์†์ด ํ•˜์–˜์ ธ์„œ A4์šฉ์ง€ ๊บผ๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์—ฐ์Šต์žฅ์ด ํ•„์š”ํ•œ๊ฐ€ ๋ด์š”. ๊ทธ๋ž˜๋„ ํ’€์–ด๋‚ด๋‹ˆ ๋ฟŒ๋“ฏํ•˜๋„ค์š”. ์ด์ œ ์ง€์ณค์œผ๋‹ˆ ์„ค๋ช…์€ ์ฃผ์„์„ ๋ณด์„ธ์š”.
๋ฐ”๊ตฌ๋‹ˆ ์† ์ธํ˜•์„ ์‚ญ์ œํ•˜๋Š” ๋ถ€๋ถ„์€ ์ฒ˜์Œ์—๋Š” ํ–„๋ฒ„๊ฑฐ ๋งŒ๋“ค๊ธฐ ๋•Œ์ฒ˜๋Ÿผ for๋ฌธ๊ณผ if๋ฌธ์„ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ, ํ•œ ๋ฌธ์ œ์—์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฆ‰์‹œ ๋น„๊ตํ•˜๊ณ  pop()์œผ๋กœ ์‚ญ์ œํ•ด์ฃผ๋‹ˆ ํ†ต๊ณผ๋๋„ค์š”. ์™ ์ง€ ๋ฌด์‹ํ•ด ๋ณด์ด๋Š”๋ฐ์š”.

๐Ÿ’ฉ ๋‹ค๋ฅธ ํ’€์ด

function solution(board, moves) {
    var count = 0;
    var stack = [];

    for(var i=0;i<moves.length;i++){
        var now = moves[i]-1
        for(var j=0;j<board.length;j++){
            if(board[j][now]!=0){
                if(stack[stack.length-1]===board[j][now]){
                    stack.pop();
                    count+=2;
                }
                else{
                    stack.push(board[j][now])
                }
                board[j][now] = 0;
                break;
            }
        }
    }
    console.log(stack)
    return count
}

๋น„์Šทํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘ผ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ด ํ’€์ด์—์„œ๋Š” ์ธํ˜•์„ ๋ฝ‘์ž๋งˆ์ž ์ด์ „์˜ ๊ฒƒ๊ณผ ๋น„๊ตํ•ด์„œ ๊ฐ™์€ ์ธํ˜•์ด๋ผ๋ฉด ์ฆ‰์‹œ ์ œ๊ฑฐํ•˜๊ณ , ์•„๋‹ ๊ฒฝ์šฐ์—๋Š” ์ธํ˜•์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ๋„ค์š”.

728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘