๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0] ์ปจํŠธ๋กค ์ œํŠธ

by hyebin (Helia) 2022. 12. 30.
๋ฐ˜์‘ํ˜•

์ปจํŠธ๋กค ์ œํŠธ

๋ฌธ์ œ ์„ค๋ช…

์ˆซ์ž์™€ "Z"๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ๋‹ด๊ธด ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ "Z"๊ฐ€ ๋‚˜์˜ค๋ฉด ๋ฐ”๋กœ ์ „์— ๋”ํ–ˆ๋˜ ์ˆซ์ž๋ฅผ ๋บ€๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์ˆซ์ž์™€ "Z"๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋จธ์“ฑ์ด๊ฐ€ ๊ตฌํ•œ ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ๋ณด์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ s์˜ ๊ธธ์ด ≤ 200
  • -1,000 < s์˜ ์›์†Œ ์ค‘ ์ˆซ์ž < 1,000
  • s๋Š” ์ˆซ์ž, "Z", ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • s์— ์žˆ๋Š” ์ˆซ์ž์™€ "Z"๋Š” ์„œ๋กœ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
  • ์—ฐ์†๋œ ๊ณต๋ฐฑ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 0์„ ์ œ์™ธํ•˜๊ณ ๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • s๋Š” "Z"๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • s์˜ ์‹œ์ž‘๊ณผ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • "Z"๊ฐ€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

s result
"1 2 Z 3" 4
"10 20 30 40" 100
"10 Z 20 Z 1" 1
"10 Z 20 Z" 0
"-1 -2 -3 Z" -3

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

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

  • 2 ๋‹ค์Œ Z ์ด๊ธฐ ๋•Œ๋ฌธ์— 2๊ฐ€ ์ง€์›Œ์ง€๊ณ , 1 + 3 = 4๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

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

  • 10 + 20 + 30 + 40 = 100์„ return ํ•ฉ๋‹ˆ๋‹ค.

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

  • "10 Z 20 Z 1"์—์„œ 10 ๋‹ค์Œ Z, 20 ๋‹ค์Œ Z๋กœ 10, 20์ด ์ง€์›Œ์ง€๊ณ  1๋งŒ ๋”ํ•˜์—ฌ 1์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #4, #5

์„ค๋ช… ์ƒ๋žต


์ œ์ถœ

import Foundation

func solution(_ s:String) -> Int {
    var s = s.split(separator: " ").map{String($0)}
    
    while s.contains("Z"){
        var index = s.firstIndex(of: "Z")!
        if index - 1 >= 0 {
            s.remove(at: index)
            s.remove(at: index - 1)
        }else{
            s.remove(at: index)
        }
    }

    return s.map{Int($0)!}.reduce(0, +)
}
์ž…๋ ฅ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฑ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ ํ›„ String ๋ฐฐ์—ด s๋กœ ์ƒ์„ฑ
s์— Z๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉฐ, Z๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•œ ํ›„ ์ธ๋ฑ์Šค-1์ด 0๋ณด๋‹ค ํฌ๋ฉด Z์™€ Z์•ž์˜ ์š”์†Œ๋ฅผ ์ง€์šด๋‹ค
์ธ๋ฑ์Šค-1์ด 0๋ณด๋‹ค ์ž‘์œผ๋ฉด Z๋งŒ ์ง€์šด๋‹ค

์ดํ›„ s๋ฅผ map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Intํ˜• ๋ฐฐ์—ด๋กœ ๋ฐ”๊พผ ํ›„, reduceํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค
๋ฐ˜์‘ํ˜•