MUKER_DEV with iOS

[swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - 카펫 λ³Έλ¬Έ

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

[swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - 카펫

MUKER 2023. 2. 27. 23:22
 

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

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

programmers.co.kr

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

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

 


 

λ‚˜μ˜ 풀이

func solution(_ brown:Int, _ yellow:Int) -> [Int] {
    for i in 1..<2_000_000 {
        guard yellow % i == 0 else { continue }
        let width = yellow / i + 2
        if (width * 2) + (i * 2) == brown {
            return [width,i+2]
        }
    }
    return []
}

 

완전탐색을 톡해 문제λ₯Ό ν’€ 수 μžˆλ‹€.

 

λ‚œ yellow에 μ΄ˆμ μ„ 맞좰 완전탐색을 μˆ˜ν–‰ν–ˆλ‹€.

 

yellowλŠ” 200λ§ŒκΉŒμ§€ λ‚˜μ˜¬ 수 μžˆκΈ°λ•Œλ¬Έμ—

1λΆ€ν„° 200λ§ŒκΉŒμ§€ λ°˜λ³΅ν•˜λ©° μ˜¬λ°”λ₯Έ 닡을 νƒμƒ‰ν•œλ‹€.

 

yellow % λ°˜λ³΅λ˜λŠ” κ°’(i)이 0이 λ‚˜μ˜¨λ‹€λ©΄

yellow / iλŠ” μ•Œλ§žμ€ μ‚¬κ°ν˜•μ„ λ§Œλ“€ 수 μžˆλŠ”

κ°€λ‘œ,μ„Έλ‘œλ₯Ό ꡬ할 수 μžˆλ‹€.

 

(yellow / i + 2)λ₯Ό κ°€λ‘œλ‘œ κ°€μ •ν•˜κ³ 

 

(i * 2)λŠ” κ°€λ‘œλ₯Ό λΊ€ brown의 개수라 ν•  수 μžˆλ‹€.

 

κ°€λ‘œ + (i * 2)κ°€ == brown이라면

μš°λ¦¬κ°€ μ°ΎλŠ” return값을 찾을 수 μžˆλ‹€.