๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Problem Solving

[Swift Algorithm] ํ•˜์ƒค๋“œ ์ˆ˜ Programmers(Lv.1)

by seolhee2750 2021. 6. 6.
๋ฌธ์ œ ํ’€์ด

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

 

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

 

์ž…์ถœ๋ ฅ ์˜ˆ
arr return
10 true
12 true
11 false
13 false

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
func solution(_ x:Int) -> Bool {
    let number = String(x).map{Int(String($0))!}.reduce(0, +)
    
    if x % number == 0 {
        return true
    }
    
    else {
        return false
    }
}
  • ์ž…๋ ฅ ๋ฐ›์€ ์ˆ˜๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜, map ์ด์šฉํ•˜์—ฌ ๊ฐ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋ชจ๋‘ Int๋กœ ๋ฐ”๊ฟ”์„œ ๋ชจ๋“  ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋”ํ•ด์ฃผ์—ˆ๋‹ค.
  • ์ž…๋ ฅ ๋ฐ›์€ ์ˆ˜ x๋ฅผ ๊ฐ ์ž๋ฆฌ์ˆ˜๋ผ๋ฆฌ ๋”ํ•œ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ, ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ๋‹ค๋ฅธ ๋ถ„๋“ค ํ’€์ด๋ฅผ ๋ณด๋‹ค๊ฐ€ ์ƒ๊ฐ๋‚œ๊ฑด๋ฐ,
    ์–ด์ฐจํ”ผ Bool ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด 
    ๊ตณ์ด if๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋” ๊ฐ„๋‹จํžˆ ํ’€์ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ‘‰ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ. ์ด๋ ‡๊ฒŒ..!

func solution(_ x:Int) -> Bool {
    return x % (String(x).map{Int(String($0))!}.reduce(0, +)) == 0
}

 


 

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/12947/solution_groups?language=swift 

๋Œ“๊ธ€