MUKER_DEV with iOS

[swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - N개의 μ΅œμ†Œκ³΅λ°°μˆ˜ λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜/programmers

[swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - N개의 μ΅œμ†Œκ³΅λ°°μˆ˜

MUKER 2023. 3. 2. 09:25
 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”.

programmers.co.kr

문제 ν‘ΈλŠ” 데 μžˆμ–΄ 도움이 λ˜λ„λ‘ λ‚˜μ˜ 풀이와 κ°œμ„ λœ 풀이λ₯Ό μ˜¬λ¦½λ‹ˆλ‹€.
λ˜ν•œ 풀이 ν›„ λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이λ₯Ό 보고 μ°Έκ³ ν• λ§Œν•œ 풀이도 μ˜¬λ¦½λ‹ˆλ‹€.

- λ¬Έμ œμ— 따라 λ‚˜μ˜ ν’€μ΄λ§Œ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
- ν•΄λ‹Ή 풀이듀은 풀이 쀑 ν•˜λ‚˜μΌ 뿐 μ΅œμ„ μ˜ ν’€μ΄λŠ” 아닐 수 μžˆμŠ΅λ‹ˆλ‹€.

 


 

λ‚˜μ˜ 풀이

func solution(_ arr:[Int]) -> Int {
    var maxNum = arr.max()!
    let plusNum = arr.max()!
    while true {
        if arr.filter({ maxNum % $0 == 0 }).count == arr.count { break }
        else { maxNum += plusNum }
    }
    return maxNum
}

 

μ—¬λŸ¬ μˆ˜λ“€μ˜ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό κ΅¬ν•˜λŠ” λ¬Έμ œμ΄λ‹€.

 

문제λ₯Ό λ³΄λ‹ˆ ꡳ이 μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 곡식을 μ¨μ„œ

μ΅œμ†Œ 곡배수λ₯Ό ꡬ할 ν•„μš”κ°€ 없을 κ±° κ°™μ•˜λ‹€.

 

λ°°μ—΄μ˜ 제일 큰수의 λ°°μˆ˜μ— λ‚˜λ¨Έμ§€ 숫자λ₯Ό λ‚˜λˆ 

λ‚˜λˆ„μ–΄ λ–¨μ–΄μ§€λŠ” μˆ«μžκ°€ 0이라면 μ΅œμ†Œκ³΅λ°°μˆ˜ λ•Œλ¬Έμ—

while문을 돌렀 λ°°μˆ˜μ— λ‚˜λ¨Έμ§€ 숫자λ₯Ό λ‚˜λˆ  정닡을 κ΅¬ν–ˆλ‹€.

 


 

μ°Έκ³ ν• λ§Œν•œ 풀이

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

func lcm(_ m: Int, _ n: Int) -> Int {
  return m / gcd(m, n) * n
}
func solution(_ arr:[Int]) -> Int {
    return arr.reduce(1) { lcm($0, $1) }
}

 

μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 곡식을 μ¨μ„œ ν‘Ό 문제.