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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํ•˜์ƒค๋“œ ์ˆ˜ Swift

by Fomagran ๐Ÿ’ป 2020. 3. 1.
728x90
๋ฐ˜์‘ํ˜•
  • ํ•˜์ƒค๋“œ ์ˆ˜
  • darklight

    sublimevimemacs

    Swift 

๋ฌธ์ œ ์„ค๋ช…

์–‘์˜ ์ •์ˆ˜ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ด๋ ค๋ฉด x์˜ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์œผ๋กœ x๊ฐ€ ๋‚˜๋ˆ„์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 18์˜ ์ž๋ฆฟ์ˆ˜ ํ•ฉ์€ 1+8=9์ด๊ณ , 18์€ 9๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฏ€๋กœ 18์€ ํ•˜์ƒค๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์ˆ˜ x๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ x๊ฐ€ ํ•˜์ƒค๋“œ ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์กฐ๊ฑด

  • x๋Š” 1 ์ด์ƒ, 10000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

arr return
12 true
11 false
13 false
10 true

ํ’€์ด:x๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค enumrated๋กœ ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ offset๊ณผ element๋กœ ๋‚˜๋ˆ ์ค€ ๋’ค map์œผ๋กœ element๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋‹ด๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  reduce๋ฅผ ์ด์šฉํ•ด์„œ element๋“ค์„ ์ฐจ๋ก€๋กœ ๋‹ค ๋”ํ•ด์ค€ ๋’ค x๋ฅผ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด true ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜

1
2
3
4
5
6
7
import Foundation
 
func solution(_ x:Int-> Bool {
    let a = String(x).enumerated().map{String($0.element)}
    let sum = a.reduce(0,{ Int($0)+Int($1)!})
    return x%sum == 0 ? true : false
    }
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

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

ํ’€์ด:String(x)์ž์ฒด๋ฅผ reduceํ•ด๋„ ์ฐจ๋ก€๋กœ ๋”ํ•ด์ง„๋‹ค.

์ฒซ๋ฒˆ์งธ $0์€ ๊ทธ๋ƒฅ ๋ƒ…๋‘ฌ๋„ ๋จ ๋ณ€ํ™˜ ์•ˆํ•ด๋„ ๋จ.

๊ตณ์ด ? : ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์กฐ๊ฑด๋ฌธ๋งŒ ๋„ฃ์–ด์ฃผ๋ฉด true false๋กœ ๋ฐ˜ํ™˜๋จ

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

๋Œ“๊ธ€