๐Ÿง‘๐Ÿป‍๐Ÿ’ป Coding Test/โŒจ๏ธ Programmers

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

EarthSea 2024. 3. 23. 21:13

 

 

๐Ÿ„ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด

โœ๐Ÿป Github

๋ฌธ์ œ ํ’€์ด github ๋งํฌ

 

 

 

๋ฌธ์ œ ์„ค๋ช…

๊ฒŒ์ž„๊ฐœ๋ฐœ์ž์ธ "์ฃ ๋ฅด๋””"๋Š” ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ธฐ๊ณ„๋ฅผ ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์œผ๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

"์ฃ ๋ฅด๋””"๋Š” ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ™”๋ฉด ๊ตฌ์„ฑ๊ณผ ๊ทœ์น™์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒŒ์ž„ ๋กœ์ง์— ๋ฐ˜์˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

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

๋งŒ์•ฝ ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜• ๋‘ ๊ฐœ๊ฐ€ ๋ฐ”๊ตฌ๋‹ˆ์— ์—ฐ์†ํ•ด์„œ ์Œ“์ด๊ฒŒ ๋˜๋ฉด ๋‘ ์ธํ˜•์€ ํ„ฐ๋œจ๋ ค์ง€๋ฉด์„œ ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์œ„ ์ƒํƒœ์—์„œ ์ด์–ด์„œ [5๋ฒˆ] ์œ„์น˜์—์„œ ์ธํ˜•์„ ์ง‘์–ด ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์œผ๋ฉด ๊ฐ™์€ ๋ชจ์–‘ ์ธํ˜• ๋‘ ๊ฐœ๊ฐ€ ์—†์–ด์ง‘๋‹ˆ๋‹ค.

ํฌ๋ ˆ์ธ ์ž‘๋™ ์‹œ ์ธํ˜•์ด ์ง‘์–ด์ง€์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋Š” ์—†์œผ๋‚˜ ๋งŒ์•ฝ ์ธํ˜•์ด ์—†๋Š” ๊ณณ์—์„œ ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚ค๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๋Ÿฐ ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ”๊ตฌ๋‹ˆ๋Š” ๋ชจ๋“  ์ธํ˜•์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฌ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. (๊ทธ๋ฆผ์—์„œ๋Š” ํ™”๋ฉดํ‘œ์‹œ ์ œ์•ฝ์œผ๋กœ 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 ๋ฐฐ์—ด์˜ ๊ฐ€๋กœ ํฌ๊ธฐ ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

board moves result
[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

 

์ž…์ถœ๋ ฅ ์˜ˆ์— ๋Œ€ํ•œ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

์ธํ˜•์˜ ์ฒ˜์Œ ์ƒํƒœ๋Š” ๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํฌ๋ ˆ์ธ์ด [1, 5, 3, 5, 1, 2, 1, 4] ๋ฒˆ ์œ„์น˜์—์„œ ์ฐจ๋ก€๋Œ€๋กœ ์ธํ˜•์„ ์ง‘์–ด์„œ ๋ฐ”๊ตฌ๋‹ˆ์— ์˜ฎ๊ฒจ ๋‹ด์€ ํ›„, ์ƒํƒœ๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์œผ๋ฉฐ ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๋Š” ๊ณผ์ •์—์„œ ํ„ฐํŠธ๋ ค์ ธ ์‚ฌ๋ผ์ง„ ์ธํ˜•์€ 4๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

 

๋ฌธ์ œ ํ’€์ด

๋‚˜์˜ ํ’€์ด

import Foundation

func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
    
    // board๋ฅผ ํ–‰์˜ ๊ฐ’์„ key๋กœ ๋ฐ›์€ Dictionary๋กœ ์ „ํ™˜
    var boardDic = [Int: [Int]]()
    
    // moves์— ๋”ฐ๋ฅธ ์ธํ˜• ์ธ๋ฑ์Šค๋ฅผ ๋„ฃ์„ ๋ฐฐ์—ด
    var stack = [Int]()
    
    // ์ •๋‹ต
    var count = 0
    
    // board -> Dic
    (0..<board.count).forEach{ i in
        boardDic[i+1] = (0..<board.count).filter{ board[$0][i] != 0 }
                                         .map{ board[$0][i] }
    }
    
    for move in moves {
        var calum = boardDic[move] ?? []
        guard let doll = calum.first else { continue }
        
        calum.removeFirst()
        boardDic[move] = calum
        
        if ( stack.last ?? 0 ) == doll {
            stack.removeLast()
            count += 2
        } else {
            stack.append(doll)
        }
        
    }
    return count
}

 

์ด์ œ๋Š” ์ •๋ง ์–ด๋–ป๊ฒŒ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ• ์ง€๋ฅผ ๊ณ ๋ฏผํ•˜๋Š” ์‹œ๊ฐ„์ด ํ‘ธ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ๋” ๊ธด ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋งŒํผ ๋‚ด๊ฐ€ ๋จธ๋ฆฟ์†์—์„œ ๊ทธ๋ฆฌ๊ณ  ์žˆ๋Š” ํ’€์ด ์ž์ฒด๋ฅผ ๋ฐ”๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋”ฉ์‹ค๋ ฅ๋„ ๋Š˜์€ ๊ฒƒ ๊ฐ™๊ณ , ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์„์ง€ ๊ณ ๋ฏผํ•˜๋Š” ๋ถ€๋ถ„๋„ ๊ฝค๋‚˜ ์„ฑ์žฅํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

 

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋ฉ”๋ชจ์žฅ์—์„œ ์˜ˆ์‹œ์—์„œ ๋‚˜์™”๋˜ ์˜ˆ์ œ๋“ค์˜ ๋™์ž‘์„ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ๋‚ด๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผํ• ์ง€ ๊ณ ๋ฏผํ–ˆ๋‹ค.

์ƒˆ๋กœ์šด stack์„ ๋งŒ๋“ค์–ด์„œ ๋“ค์–ด์˜ค๋Š” ์ธํ˜•์ด ๋ฐ”๋กœ ์•ž์˜ stack๊ณผ ๊ฐ™๋‹ค๋ฉด ๋ฐ”๋กœ count๋ฅผ ์˜ฌ๋ฆฌ๊ณ , stack์—์„œ ๋งˆ์ง€๋ง‰ ๋ฐฐ์—ด์„ ์ œ๊ฑฐํ•˜๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ , ํ•ด๋‹นํ•˜๋Š” ์ธํ˜•์˜ ์—ด์„ ๋นผ์˜ค๋Š” ๋ถ€๋ถ„์—์„œ๋Š” ๋ฐฐ์—ด๋กœ ๋“ค์–ด๊ฐ„๋‹ค๋ฉด ๋ฌด์กฐ๊ฑด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ์•ž์„œ ํ•™์Šตํ–ˆ๋˜ ์‹ ๊ณ ๊ฒฐ๊ณผ๋ฐ›๊ธฐ์—์„œ์˜ ๋ฐฐ์—ด์„ ๋”•์…”๋„ˆ๋ฆฌ์˜ value์— ๋„ฃ์–ด์„œ Dictionary๋กœ search๋ฅผ ํ•œ๋‹ค๋ฉด ๋ฐ”๋กœ ํ’€๋ฆฌ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์‹คํ–‰ํ•˜์˜€๋‹ค.

 

์ƒ๊ฐํ–ˆ๋˜ ํ’€์ด๋Œ€๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ board๋ฅผ Dictionary์— ๋จผ์ € ๋„ฃ์–ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„์ด ๋˜์—ˆ๋‹ค๋ฉด, ๋‹ค์Œ ๋‹จ๊ณ„์ธ ํ–‰์˜ ๊ฐ’์— ๋งž๋Š” ์ธํ˜•์„ ๋นผ์™€ ๋ฐฐ์—ด์—์„œ ์—†์• ์„œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ณ , ๊ทธ ์ธํ˜•๊ณผ stack์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ ๋น„๊ตํ•˜์—ฌ count๋ฅผ ์˜ฌ๋ ค์ฃผ์—ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๊ทธ์น˜์ง€ ๋ง๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ž‘๋„ ๋น„๊ตํ•ด๋ณด์ž! ( ๊ทผ๋ฐ column ์˜คํƒ€๋‚ฌ๋„นใ…Ž )

 

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

import Foundation

func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
    var count = 0
    var stacks: [[Int]] = Array(repeating: [], count: board.count)
    var bucket: [Int] = []

    board.reversed().forEach {
        $0.enumerated().forEach {
            if $0.1 != 0 {
                stacks[$0.0].append($0.1)
            }
        }
    }

    moves.forEach {
        if let doll = stacks[$0-1].popLast() {
            if let last = bucket.last, last == doll {
                bucket.removeLast(1)
                count += 2
            } else {
                bucket.append(doll)
            }
        }
    }

    return count
}

 

removeFirst()๋ณด๋‹ค ๋น ๋ฅธ popLast()๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ๋ฐฐ์—ด์„ ๋’ค์ง‘์–ด์ฃผ์—ˆ๋‹ค.

๋‚ด๊ฐ€ Dictionary๋กœ column์— ๋”ฐ๋ผ ๋‹ค์‹œ ์ธํ˜•๋“ค์„ ๋„ฃ์–ด์ค€ ๋ถ€๋ถ„์„ ์ด ๋ถ„์€ ๋ฐฐ์—ด๋กœ ์ •๋ฆฌ๋ฅผ ํ•˜์˜€๋‹ค.

์ฝ”๋“œ๋„ ํ›จ์”ฌ ๊น”๋”ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•˜๋‹ค. ์‹คํ–‰์‹œ๊ฐ„์„ ๋น„๊ตํ•ด๋ณด์ž.

 

๋‚˜์˜ ํ’€์ด ์‹คํ–‰์‹œ๊ฐ„

๋”๋ณด๊ธฐ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.27ms, 16.7MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.18ms, 16.5MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.17ms, 16.4MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (1.79ms, 16.6MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (0.17ms, 16.4MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (0.23ms, 16.3MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.52ms, 16.6MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.66ms, 16.3MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.67ms, 16.5MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (0.73ms, 16.6MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (1.29ms, 16.6MB)

 

๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด ์‹คํ–‰์‹œ๊ฐ„

๋”๋ณด๊ธฐ
ํ…Œ์ŠคํŠธ 1 ใ€‰	ํ†ต๊ณผ (0.15ms, 16.5MB)
ํ…Œ์ŠคํŠธ 2 ใ€‰	ํ†ต๊ณผ (0.17ms, 16.6MB)
ํ…Œ์ŠคํŠธ 3 ใ€‰	ํ†ต๊ณผ (0.16ms, 16.5MB)
ํ…Œ์ŠคํŠธ 4 ใ€‰	ํ†ต๊ณผ (0.65ms, 16.6MB)
ํ…Œ์ŠคํŠธ 5 ใ€‰	ํ†ต๊ณผ (0.22ms, 16.4MB)
ํ…Œ์ŠคํŠธ 6 ใ€‰	ํ†ต๊ณผ (0.16ms, 16.5MB)
ํ…Œ์ŠคํŠธ 7 ใ€‰	ํ†ต๊ณผ (0.23ms, 16.5MB)
ํ…Œ์ŠคํŠธ 8 ใ€‰	ํ†ต๊ณผ (0.65ms, 16.5MB)
ํ…Œ์ŠคํŠธ 9 ใ€‰	ํ†ต๊ณผ (0.35ms, 16.5MB)
ํ…Œ์ŠคํŠธ 10 ใ€‰	ํ†ต๊ณผ (0.36ms, 16.5MB)
ํ…Œ์ŠคํŠธ 11 ใ€‰	ํ†ต๊ณผ (0.56ms, 16.6MB)

 

 

 

๋‚˜์˜ ํ’€์ด๊ฐ€ ๋” ๋Š๋ฆฐ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์€ ๋ฌด์กฐ๊ฑด Dictionary๊ฐ€ ๋น ๋ฅผ ๊ฒƒ์ด๋ผ๋Š” ๋‚ด ์ƒ๊ฐ์ด ํ‹€๋ฆฐ ๊ฒƒ์ด๋‹ค. ์™œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๊ฐ€ ๋” ๋น ๋ฅธ์ง€ ๋ถ„์„์„ ํ•ด๋ณด๋ฉด, ๋”•์…”๋„ˆ๋ฆฌ๋Š” ๊ฐ’์„ ์„œ์น˜ํ•˜๋Š” ๋ฐ๋Š” ๋น ๋ฅด์ง€๋งŒ ๋ฐฐ์—ด๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋” ๋งŽ๋‹ค. ๋ฐฐ์—ด์— ๊ฐ’์„ append ํ•˜๊ฑฐ๋‚˜ pop ํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ๋”•์…”๋„ˆ๋ฆฌ์—์„œ ๋ฐฐ์—ด์„ ๊ฐ€์ ธ์™€์„œ removeFirst()๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค์Œ ๋‹ค์‹œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๋Š” ๊ณผ์ •์ด ๋” ๋Š๋ฆฌ๊ฒŒ ๋œ ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค!

 

์ด๋กœ์จ ์˜ค๋Š˜์˜ ๋ฐฐ์›€.

๋ฌด์กฐ๊ฑด ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹ ๋•Œ๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ!