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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ์Œ์–‘ ๋”ํ•˜๊ธฐ

by hyebin (Helia) 2023. 3. 4.
๋ฐ˜์‘ํ˜•
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ

์Œ์–‘ ๋”ํ•˜๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

์–ด๋–ค ์ •์ˆ˜๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •์ˆ˜๋“ค์˜ ์ ˆ๋Œ“๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ์ •์ˆ˜ ๋ฐฐ์—ด absolutes์™€ ์ด ์ •์ˆ˜๋“ค์˜ ๋ถ€ํ˜ธ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ๋ถˆ๋ฆฌ์–ธ ๋ฐฐ์—ด signs๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ ์ •์ˆ˜๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜์—ฌ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • absolutes์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • absolutes์˜ ๋ชจ๋“  ์ˆ˜๋Š” ๊ฐ๊ฐ 1 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • signs์˜ ๊ธธ์ด๋Š” absolutes์˜ ๊ธธ์ด์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • signs [i]๊ฐ€ ์ฐธ์ด๋ฉด absolutes [i]์˜ ์‹ค์ œ ์ •์ˆ˜๊ฐ€ ์–‘์ˆ˜์ž„์„, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์Œ์ˆ˜์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

absolutes absolutes result
[4,7,12] [true,false,true] 9
[1,2,3] [false,false,true] 0

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

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

  • signs๊ฐ€ [true, false, true] ์ด๋ฏ€๋กœ, ์‹ค์ œ ์ˆ˜๋“ค์˜ ๊ฐ’์€ ๊ฐ๊ฐ 4, -7, 12์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์„ธ ์ˆ˜์˜ ํ•ฉ์ธ 9๋ฅผ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • signs๊ฐ€ [false, false, true] ์ด๋ฏ€๋กœ, ์‹ค์ œ ์ˆ˜๋“ค์˜ ๊ฐ’์€ ๊ฐ๊ฐ -1, -2, 3์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์„ธ ์ˆ˜์˜ ํ•ฉ์ธ 0์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
    var result = 0

    for i in 0..<absolutes.count{
    	result = signs[i] ? result+absolutes[i] : result-absolutes[i]
    }

    return result
}
๊ฒฐ๊ด๊ฐ’์„ ์ €์žฅํ•  ๋ณ€์ˆ˜ result๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
absolutes ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ for๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค.
signs ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ true ๋ผ๋ฉด result์— absolutes๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๋”ํ•˜๊ณ  ์•„๋‹ˆ๋ผ๋ฉด absolutes ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๋บ€๋‹ค.

๋‹ค๋ฅธ ํ’€์ด

import Foundation

func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
    return (0..<absolutes.count).map{signs[$0] ? absolutes[$0] : -absolutes[$0]}.reduce(0,+)
}
mapํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ signs์˜ ์š”์†Œ๊ฐ€ ture๋ผ๋ฉด ์–‘์ˆ˜์˜ absolutes ๋ฐฐ์—ด์„ ์•„๋‹ˆ๋ผ๋ฉด ์Œ์ˆ˜์˜ absolutes์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
reduceํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ map ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜ํ•œ ์š”์†Œ๋“ค์„ ๋”ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•