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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง์…ˆ

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

์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ๋ง์…ˆ

๋ฌธ์ œ ์„ค๋ช…

๋‘ ์ •์ˆ˜ left์™€ right๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. left๋ถ€ํ„ฐ right๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜๋“ค ์ค‘์—์„œ, ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ ์ˆ˜๋Š” ๋”ํ•˜๊ณ , ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ธ ์ˆ˜๋Š” ๋บ€ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ left ≤ right ≤ 1,000

์ž…์ถœ๋ ฅ ์˜ˆ

left right result
13 17 43
24 27 52

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

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

  • ๋‹ค์Œ ํ‘œ๋Š” 13๋ถ€ํ„ฐ 17๊นŒ์ง€์˜ ์ˆ˜๋“ค์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ˆ˜ ์•ฝ์ˆ˜ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜
13 1, 13 2
14 1, 2, 7, 14 4
15 1, 3, 5, 15 4
16 1, 2, 4, 8, 16 5
17 1, 17 2
  • ๋”ฐ๋ผ์„œ, 13 + 14 + 15 - 16 + 17 = 43์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋‹ค์Œ ํ‘œ๋Š” 24๋ถ€ํ„ฐ 27๊นŒ์ง€์˜ ์ˆ˜๋“ค์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ˆ˜ ์•ฝ์ˆ˜ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜
24 1, 2, 3, 4, 6, 8, 12, 24 8
25 1, 5, 25 3
26 1, 2, 13, 26 4
27 1, 3, 9, 27 4
  • ๋”ฐ๋ผ์„œ, 24 - 25 + 26 + 27 = 52๋ฅผ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ left:Int, _ right:Int) -> Int {
    var re = 0
    for i in left...right{
        var cnt = (1...i).map{$0}.filter{i%$0 == 0}.count
        cnt % 2 == 0 ? (re += i) : (re -= i)
    }
    return re
}
left๋ถ€ํ„ฐ right๊นŒ์ง€ ๊ฐ ์ •์ˆ˜์˜ ์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
filter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ i๊นŒ์ง€ ์ •์ˆ˜๋ฅผ ๋‚˜๋ˆด์„ ๋•Œ, ๋‚˜๋จธ์ง€๊ฐ€ 0์ธ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ cnt ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
cnt ๋ณ€์ˆ˜๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด re ๋ณ€์ˆ˜์— ์ •์ˆ˜๋ฅผ ๋”ํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด re ๋ณ€์ˆ˜์—์„œ ์ •์ˆ˜๋ฅผ ๋บ€๋‹ค.

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

import Foundation

func solution(_ left:Int, _ right:Int) -> Int {
    var answer = 0

    for number in left...right{
        if floor(sqrt(Double(number))) == sqrt(Double(number)) {
            answer -= number
        } else {
            answer += number
        }
    }
    return answer
}
์ •์ˆ˜๊ฐ€ ์ œ๊ณฑ์ˆ˜์ธ ๊ฒฝ์šฐ์—๋งŒ ์•ฝ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ด๋‹ค.
๋”ฐ๋ผ์„œ ์ •์ˆ˜์˜ ์ œ๊ณฑ๊ทผ์„ ๊ตฌํ•œ ํ›„, floorํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๋ฒ„๋ ธ์„ ๋•Œ์™€ ๋™์ผํ•˜๋‹ค๋ฉด(์ œ๊ณฑ๊ทผ ๊ฐ’์ด ์ •์ˆ˜) answer ๋ณ€์ˆ˜์—์„œ ์ •์ˆ˜๋ฅผ ๋บ€๋‹ค.
์•„๋‹ˆ๋ผ๋ฉด answer ๋ณ€์ˆ˜์— ์ •์ˆ˜๋ฅผ ๋”ํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•