N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Swift)

2022. 10. 10. 11:45ใ†ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Swift

N๊ฐœ์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

https://school.programmers.co.kr/learn/courses/30/lessons/12953

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 ๋‚˜์˜ ํ’€์ด

 

๋จผ์ € ๋งจ ์•ž ๋‘ ์ˆซ์ž์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ  ๊ทธ ๋‹ค์Œ ์ˆซ์ž์™€์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ์ด๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

Solution๋ถ€๋ถ„์—์„œ for๋ฌธ์„ ํ†ตํ•ด ์ด๋ฅผ ๋ˆ„์ ํ–ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ reduce๋กœ ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

reduce๋Š” ๊ฐ’์„ ๋”ํ•˜๊ธฐ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํŠน์ •ํ•œ ๋กœ์ง์„ ์ ์šฉํ•˜์—ฌ ๋ˆ„์ ์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋ณธ์งˆ์ด๊ธฐ์— ์ž˜ ์“ฐ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

func gcd(_ a: Int, _ b: Int) -> Int {
    if b == 0 {
        return a
    } else {
        return gcd(b, a%b)
    }
}

func lcm(_ a: Int, _ b: Int) -> Int {
    return (a*b) / gcd(a, b)
}

func solution(_ arr:[Int]) -> Int {
    arr.reduce(1){ lcm($0, $1)}
}