๊ธ€ ์ž‘์„ฑ์ž: ์ด์ง€์›๐ŸŒฉ๏ธ

๋ ˆ์ธ ์Šค์œ„ํ”„ํŠธ 30ํ˜ธ๋ฅผ ์ฝ๋‹ค๊ฐ€, ์™€๋‹ฟ๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์š”์•ฝ, ์ •๋ฆฌํ–ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€ ๋•Œ๋„ ๋น„์Šทํ•˜๊ฒŒ ๋งŽ์ด ์“ฐ๋Š”๋ฐ (while !queue.isEmpty) ์ด๊ฑธ ์ฝ๊ณ ์„œ ๊ณ ์ณ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

Use Positive Guards

guard ํ‚ค์›Œ๋“œ์˜ ์ฃผ์š” ์šฉ๋„

  1. ๊ณ„์‚ฐ์— ํ•„์š”ํ•œ ์˜ต์…˜์„ ์–ธ๋žฉํ•‘
  2. ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ „์ œ ์กฐ๊ฑด์„ ๋ช…์‹œ

์—ฌ๊ธฐ์„œ๋Š” ๋‘ ๋ฒˆ์งธ ์šฉ๋„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.

guard !pieces.isEmpty else {
    return
}

์œ„ ์ฝ”๋“œ๋Š” ๋‘ ๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ๋‹ค.

  1. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฌ์›€ → !๋ฅผ ์žŠ๊ธฐ ์‰ฝ๋‹ค.
  2. ๋‚ด์žฌํ™”ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์กฐ๊ฑด์„ ์ฝ์„ ๋•Œ, ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ฝ์€ ๋‹จ์–ด์˜ ์˜๋ฏธ๋ฅผ ๋’ค์ง‘์–ด์•ผ ํ•œ๋‹ค.

Collection ํ”„๋กœํ† ์ฝœ์— ์‚ฌ์†Œํ•œ ๋„์šฐ๋ฏธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

extension Collection {
    var isNotEmpty: Bool {
        return !self.isEmpty
    }
}

// ...

guard pices.isNotEmpty else {
    return
}

 

์ถœ์ฒ˜

๊น”๋”ํ•œ ์Šค์œ„ํ”„ํŠธ ์ฝ”๋“œ๋ฅผ ์œ„ํ•œ 5๊ฐ€์ง€ ํŒ

๋ฐ˜์‘ํ˜•