MUKER_DEV with iOS

[Swift] Programmers_Lv1 ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[Swift] Programmers_Lv1 ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ

MUKER 2022. 6. 23. 00:30
์ œ ๋ฌธ์ œ ํ’€์ด๋Š” ์ตœ์„ ์˜ ํ’€์ด๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค!

 

๋ฌธ์ œ์„ค๋ช…

์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง€๋ฉด, N์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•ด์„œ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.
์˜ˆ๋ฅผ๋“ค์–ด N = 123์ด๋ฉด 1 + 2 + 3 = 6์„ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ œํ•œ ์กฐ๊ฑด

  • N์˜ ๋ฒ”์œ„ : 100,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜

 

์ž…์ถœ๋ ฅ ์˜ˆ

N answer
123 6
987 24

 

๋ฌธ์ œ ๋ถ„์„

1. map์„ ์ด์šฉํ•ด ์ž์—ฐ์ˆ˜๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ convert ํ•  ์ˆ˜ ์žˆ๋‹ค.

2. reduce()๋ฅผ ์ด์šฉํ•ด ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Solution.swift

import Foundation

func solution(_ n:Int) -> Int {
      
    return String(n).map { Int(String($0))! }.reduce(0) { $0 + $1}
    
    // n์„ String์œผ๋กœ convertํ•œ ๋’ค map์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ ์ž๋ฆฟ ์ˆ˜๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
    // reduce๋Š” ๊ฐ ํ•ญ๋ชฉ๋“ค์„ ์žฌ๊ท€์ ์œผ๋กœ ํด๋กœ์ €๋ฅผ ์ ์šฉ์‹œ์ผœ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.
    // ํ•ด๋‹น ์ถ”๋ก ์˜ ์ „ ๋‹จ๊ณ„๋กœ ์ฝ”๋“œ๋ฅผ ์ดํ•ด์‹œ์ผœ๋“œ๋ฆฌ์ž๋ฉด
    // reduce(0) { (s1, s2) in s1 , s2 } ์ž…๋‹ˆ๋‹ค.
    // s1,s2๋Š” ํ•จ์ถ•๋˜์–ด $0, $1 ๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    // reduce(0), 0์˜ ์ž๋ฆฌ๋ถ€ํ„ฐ { $0 + $1 } ๋กœ ์žฌ๊ท€์  ๋ง์…ˆ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒ๋‹ˆ๋‹ค.
    // ์ด ํด๋กœ์ €๋Š” ์ด์ „ ๊ฒฐ๊ณผ์™€ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ๊ณ„์† ํ˜ธ์ถœํ•ด์„œ ๊ฐ’์„ ์–ป๊ฑฐ๋“ ์š”.
    // {0,1},{1+2},{3+3} ์ด๋Ÿฐ์‹์œผ๋กœ ๋ง์ž…๋‹ˆ๋‹ค.
    // ์‹ฌ์ง€์–ด ์ค‘์œ„ ์—ฐ์‚ฐ์ž๋Š” ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ ๊ฐ’์„ ์ถ”๋ก  ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    // reduce(0, +) ์ด๋ ‡๊ฒŒ๋„ ์ƒ๋žต์ด ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.
    }

 

Progremmers Recommend Solution

import Foundation

func solution(_ n:Int) -> Int
{
    return String(n).reduce(0, {$0+Int(String($1))!});
}