MUKER_DEV with iOS

[swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - ν”Όλ³΄λ‚˜μΉ˜ 수 λ³Έλ¬Έ

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

[swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - ν”Όλ³΄λ‚˜μΉ˜ 수

MUKER 2023. 2. 22. 09:43
 

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

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

programmers.co.kr

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

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

 


 

λ‚˜μ˜ 풀이

func solution(_ n:Int) -> Int {
    var result = [0,1]
    for i in 2...n {
        result.append((result[i-1] + result[i-2]) % 1234567 )
    }
    return result[n]
}

 

동적 ν”„λ‘œκ·Έλž˜λ°(DP) 기법을 μ‚¬μš©ν•΄ ν’€μ—ˆμŠ΅λ‹ˆλ‹€.

 

동적 ν”„λ‘œκ·Έλž˜λ°μ΄λž€

 

κ°€μž₯ μž‘μ€ λΆ€λΆ„μ˜ 해닡을 κ΅¬ν•œ ν›„

이λ₯Ό μ €μž₯ ν•˜μ—¬

μ €μž₯ν•œ 값을 μ΄μš©ν•΄ 문제λ₯Ό ν’€μ–΄κ°€λŠ” 기법을 λ§ν•©λ‹ˆλ‹€.

 

2 μ΄μƒμ˜ μˆ«μžλΆ€ν„°

n에 λ“€μ–΄μ˜¬ 수 μžˆμœΌλ‹ˆ

 

κ³ μ •κ°’ 0,1은 배열에 넣어놓고

ν• λ‹Ήλ˜λŠ” 숫자만큼

2λΆ€ν„° λ°˜λ³΅ν•˜μ—¬

배열을 검색해 ν”Όλ³΄λ‚˜μΉ˜μˆ˜λ₯Ό κ΅¬ν–ˆμŠ΅λ‹ˆλ‹€.

 

ν”Όλ³΄λ‚˜μΉ˜μˆ˜λŠ” 금방 μˆ«μžκ°€ 컀지기 λ•Œλ¬Έμ—

μ’€λ§Œ 큰 μˆ«μžκ°€ 듀어와도

μ˜€λ²„ν”Œλ‘œμš°λ₯Ό λ±‰μŠ΅λ‹ˆλ‹€.

 

λ¬Έμ œμ—μ„œ λͺ…μ‹œν•œ 거처럼

문제λ₯Ό ν’€κΈ° μœ„ν•΄

 

ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—μ„œ

1234567을 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό 배열에 μ €μž₯ν•΄ μ€λ‹ˆλ‹€.