λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸƒ algorithm/leetcode93

LeetCode 55 - Jump Game (Medium) 문제 LeetCode - 55번 풀이 κ³Όμ • ν˜„μž¬ μœ„μΉ˜μ—μ„œ 움직일 수 μžˆλŠ” 거리가 μ£Όμ–΄μ Έμžˆκ³ , 이λ₯Ό 톡해 λ§ˆμ§€λ§‰ μœ„μΉ˜ 도달 κ°€λŠ₯성을 νŒλ‹¨ν•˜λŠ” 동적 κ³„νšλ²• λ¬Έμ œμž…λ‹ˆλ‹€. λ”°λΌμ„œ dp(x) = xμ—μ„œ λ§ˆμ§€λ§‰ index에 도달 κ°€λŠ₯ν•œμ§€ μ—¬λΆ€ 라고 μ •μ˜ν•œλ‹€λ©΄ λ‹€μŒκ³Ό 같은 점화식을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. dp(x) = at least one for all dp(x + jump) , μ΄λ•Œ jumpλŠ” xμ—μ„œ 점프 κ°€λŠ₯ν•œ 거리 즉, ν˜„μž¬ μœ„μΉ˜μ—μ„œ 도달 κ°€λŠ₯ν•œ μœ„μΉ˜ 쀑 μ–΄λŠ ν•˜λ‚˜λΌλ„ λ§ˆμ§€λ§‰ μœ„μΉ˜μ— λ„λ‹¬ν•˜λŠ” 경둜λ₯Ό 가지고 μžˆλ‹€λ©΄ ν˜„μž¬ μœ„μΉ˜μ—μ„œλ„ λ§ˆμ§€λ§‰μ— 도달할 수 μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€. Javascript μ—μ„œλŠ” ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° 기법에 κΈ°λ°˜ν•œ λ©”λͺ¨μ΄μ œμ΄μ…˜ νŒ¨ν„΄μ΄ μžˆμŠ΅λ‹ˆλ‹€. 이번 λ¬Έμ œμ—μ„œλŠ” ν΄λ‘œμ € λ₯Ό ν™œμš©ν•΄μ„œ Top-down λ°©μ‹μ˜ λ©”.. 2021. 3. 2.
LeetCode 70 - Climing Stairs (Easy) 문제 LeetCode - 70번 풀이 κ³Όμ • μ „ν˜•μ μΈ 동적 κ³„νšλ²• λ¬Έμ œμž…λ‹ˆλ‹€. ν˜„μž¬ κ³„λ‹¨μ—μ„œ 올라갈 수 μžˆλŠ” 칸의 μˆ˜κ°€ 1~2 μ΄λ―€λ‘œ dp(n) = n번째 κ³„λ‹¨μ—μ„œ λ§ˆμ§€λ§‰ 계단에 λ„λ‹¬ν•˜λŠ” 경우의 수 라고 μ •μ˜ν•œλ‹€λ©΄ λ‹€μŒκ³Ό 같은 점화식을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. dp(n) = dp(n-1) + dp(n-2) μ΄λŠ” ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄κ³Ό 같은 ν˜•νƒœλ₯Ό 가지고 μžˆλŠ” 것을 μ•Œ 수 μžˆλ„€μš”. 이번 λ¬Έμ œμ—μ„œλŠ” 보톡 Javascript둜 λ©”λͺ¨μ΄μ œμ΄μ…˜μ„ κ΅¬ν˜„ν•  λ•Œ 주둜 μ‚¬μš©ν•˜λŠ” ν΄λ‘œμ € νŒ¨ν„΄μ΄ μ•„λ‹ˆλΌ λ‹€λ₯Έ μ–Έμ–΄μ—μ„œ μ‚¬μš©ν•˜λŠ” μ „μ—­ μŠ€μ½”ν”„ λ³€μˆ˜λ₯Ό 미리 ν• λ‹Ήλ°›μ•„ μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이후 λ¬Έμ œλΆ€ν„°λŠ” Javascript 에 μ΅μˆ™ν•΄μ§€κΈ° μœ„ν•΄ λ©”λͺ¨μ΄μ œμ΄μ…˜μ„ κ΅¬ν˜„ν•  λ•Œ ν΄λ‘œμ €λ₯Ό ν™œμš©ν•  μ˜ˆμ •μž…λ‹ˆλ‹€. μ½”λ“œ /** * @param {number} n * @re.. 2021. 3. 2.
LeetCode 1 - Two Sum (Easy) 문제 LeetCode - 1번 풀이 κ³Όμ • λ¬Έμ œλŠ” 두 수의 ν•©μœΌλ‘œ target 값을 λ§Œλ“€μ–΄λ‚΄λŠ” 경우λ₯Ό μ°ΎλŠ” κ²ƒμž…λ‹ˆλ‹€. μ €λŠ” 브루트 포슀 λ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λ“  두 숫자 쑰합을 λ§Œλ“€μ–΄λ³Έ λ‹€μŒ 닡을 μ°Ύμ•„λƒˆμŠ΅λ‹ˆλ‹€. 문제 ν•΄μ„€μ—μ„œλŠ” ν•΄μ‹œ ν…Œμ΄λΈ” 을 μ‚¬μš©ν•˜λŠ” 방법도 μžˆμ—ˆλŠ”λ° μ΄λŠ” λͺ¨λ“  수λ₯Ό 인덱슀 κ°’κ³Ό ν•¨κ»˜ ν•΄μ‹œ ν…Œμ΄λΈ” 에 μ €μž₯ν•œ λ’€ (target - λ°°μ—΄μ˜ 각 숫자) 에 ν•΄λ‹Ήν•˜λŠ” μˆ˜κ°€ ν•΄μ‹œν…Œμ΄λΈ” 에 μ‘΄μž¬ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ”°μ Έ μ‹œκ°„λ³΅μž‘λ„λ₯Ό μ€„μ΄λŠ” 방법도 μ œμ‹œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ (target - λ°°μ—΄μ˜ 각 숫자) κ°€ ν˜„μž¬ ν•΄μ‹œν…Œμ΄λΈ” 에 μ‘΄μž¬ν•œλ‹€λ©΄ κ·ΈλŒ€λ‘œ 닡을 λ§Œλ“€μ–΄ λ°˜ν™˜ν•˜κ³  μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ ν˜„μž¬ 인덱슀의 값을 ν•΄μ‹œ ν…Œμ΄λΈ” 에 μΆ”κ°€ν•΄μ€λ‹ˆλ‹€. μ½”λ“œ 브루트 포슀 /** * @param {number[]} nums * @param.. 2021. 3. 2.