๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•ฝ์ˆ˜์˜ ํ•ฉ Swift

by Fomagran ๐Ÿ’ป 2020. 2. 23.
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ n์„ ์ž…๋ ฅ๋ฐ›์•„ n์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • n์€ 0 ์ด์ƒ 3000์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

n return
5 6
12 28

ํ’€์ด:๊ฑ 0์ผ ๋•Œ๋งŒ ์กฐ์‹ฌํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” for๋ฌธ ๋Œ๋ ค์„œ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ๋“ค์„ ๋”ํ•ด์ฃผ๋ฉด ๋จ.

 
1
2
3
4
5
6
7
8
9
func solution(_ n:Int-> Int {
    var count = 0
    for i in 1...n{
        if n%i == 0 {
            count += i
        }
    }
    return n == 0 ? 0 :count
}

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด ์ค‘ ๊ฐ€์žฅ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ

์šฐ์„  guard๋ฌธ์„ ์ด์šฉํ•ด 0์ผ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜๊ณ 

Array์™€ filter๋ฅผ ์ด์šฉํ•ด ๋‚˜๋ˆ„์–ด ๋–จ์ด์ง€๋Š” ๊ฒƒ์„ ๋„ฃ๊ณ  reduce๋ฅผ ์ด์šฉํ•ด์„œ ์ฐจ๋ก€๋กœ ๋”ํ–ˆ๋‹ค.

๋‚˜๋„ reduce๋ฅผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋Œ€์ถฉ ๋จธ๋ฆฌ์“ฐ๊ธฐ ๊ท€์ฐฎ์•„์„œ for๋ฌธ์„ ๋Œ๋ ธ๋‹ค.

1
2
3
4
5
6
func solution(_ n:Int-> Int {   
    guard n != 0 else {
        return 0
    }
    return Array(1...n).filter{n % $0 == 0}.reduce(0+)
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€