๐ช Programming
[React] ๋ฆฌ์กํธ์ ์ฌ๋ฐ๋ฅธ useEffect ์ฌ์ฉํ
[React] ๋ฆฌ์กํธ์ ์ฌ๋ฐ๋ฅธ useEffect ์ฌ์ฉํ
2025.01.21๋ฆฌ์กํธ์ useEffect๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ, ๊ตฌ๋
๊ด๋ฆฌ, DOM ์
๋ฐ์ดํธ, ์ฌ์ด๋ ์ดํํธ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ์์
์ ์ฌ์ฉ๋๋ค. ๊ทธ๋ฌ๋ useEffect๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ ์ ํ, ๋ถํ์ํ ๋ ๋๋ง, ๋๋ฒ๊น
์ ๋ณต์ก์ฑ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. "Leave useEffect Alone!" ๋ผ๋ ๊ฐ์ด๋ ๊ธ์ ์ฐธ๊ณ ํ์ฌ ์ฌ๋ฐ๋ฅธ useEffect ์ฌ์ฉ๋ฒ์ ๋ํ ์ถ๊ฐ ์ค๋ช
์ ๋ง๋ถ์ฌ์ ์ ๋ฆฌํด ๋ดค๋ค. ๊ฒฝ์ ์ํ(Race Condition) โญ๊ฒฝ์ ์ํ๋ ์ฌ๋ฌ ๋น๋๊ธฐ ์์
์ด ๋์์ ์คํ๋ ๋, ์คํ ์์๋ ๊ฒฐ๊ณผ๊ฐ ์์ธกํ์ง ์์ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ํ์์ ๊ฐ๋ฆฌํจ๋ค. ์๋ ์ฝ๋์์ ๋ฒํผ์ ์ฌ๋ฌ ๋ฒ ํด๋ฆญํ๋ฉด counter ๊ฐ์ด ์ฆ๊ฐํ๊ณ , ๊ฐ ์์ฒญ์ ๋๋คํ ์๊ฐ๋งํผ ๋๊ธฐํ ํ response ์ํ๋ฅผ ์
๋ฐ์ดํธํ๋ค. ํ์ง๋ง ์ด..
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์ต์ ํ ๊ธฐ๋ฒ ๋ชจ์
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์ต์ ํ ๊ธฐ๋ฒ ๋ชจ์
2024.12.07"Optimizing Javascript for fun and for profit"๋ผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ ํ ๊ด๋ จ ๊ธ์ ์์ด ์๋ฌธ๊ณผ ๋ฒ์ญ๋ณธ์ ๋ฐํ์ผ๋ก, ๋ถ๊ฐ์ ์ธ ์ค๋ช
์ ์ถ๊ฐํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์ธ์ด๋ก ์ ๋ฆฌํด ๋ดค๋ค. ์์ ์ฝ๋๋ ์กฐ๊ธ ๋ ๋ค๋ฌ์ด์ ๊ฐ์ ํ๋ค. ๋ฌธ์์ด ๋น๊ต ํผํ๊ธฐ Avoid string comparisons๋ฌธ์์ด ๋น๊ต๋ ๊ฐ ๋ฌธ์๋ฅผ ์์ฐจ์ ์ผ๋ก ๋น๊ตํด์ผ ํ๋ฏ๋ก O(n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ํนํ ๋ฌธ์์ด enum์ ์ฌ์ฉํ๋ ๊ฒ์ ์ฑ๋ฅ ์ต์ ํ ๊ด์ ์์ ํผํด์ผ ํ ํจํด ์ค ํ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์์ ์ ์(Integer)๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ผ๋ก ์ ๋ฌ๋๋ฉฐ, ๋น๊ต ์ฐ์ฐ ์ ๋ฐ๋ก ๊ฐ์ ํ์ธํ ์ ์์ด ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค. ๋ฐ๋ฉด ๋ฌธ์์ด์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์์น(ํฌ์ธํฐ)๋ฅผ ์ฐธ์กฐํด ๊ฐ์ ๊ฐ์ ธ์จ ํ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ..
[Algorithm] ์ฌ๋ผ์ด๋ฉ ์๋์ฐ Sliding Window ์๊ณ ๋ฆฌ์ฆ ํบ์๋ณด๊ธฐ
[Algorithm] ์ฌ๋ผ์ด๋ฉ ์๋์ฐ Sliding Window ์๊ณ ๋ฆฌ์ฆ ํบ์๋ณด๊ธฐ
2024.11.11์ฌ๋ผ์ด๋ฉ ์๋์ฐ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ์๊ณ ๋ฆฌ์ฆ(Sliding Window Algorithm)์ ๋ฐฐ์ด๊ณผ ๊ฐ์ ์ ํ ์๋ฃ๊ตฌ์กฐ์์ ์ฐ์๋ ๊ตฌ๊ฐ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ด๋ค. ํนํ ๋ฐฐ์ด ๋ด ์ฐ์๋ ์์์ ํฉ, ์ต๋๊ฐ, ์ต์๊ฐ ๋ฑ์ ๊ณ์ฐํ ๋ ์ ์ฉํ๋ค. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ ์ด๋ฆ ๊ทธ๋๋ก ๊ณ ์ /๊ฐ๋ณ ํฌ๊ธฐ์ ๋ฒ์(์๋์ฐ)๋ฅผ ์ด๋(์ฌ๋ผ์ด๋) ์ํค๋ฉด์ ํ์ํ ๊ณ์ฐ์ ๋ฐ๋ณตํ๋ ๋ฐฉ์์ด๋ค. ์ด๋ ์ ์ฒด ๋ฐฐ์ด์ ํ ๋ฒ๋ง ์ํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ค๋ณต ์ฐ์ฐ์ ํผํ๊ณ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ ํ ์ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด O(n)์ ์๊ฐ ๋ณต์ก๋๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.// ์ฃผ์ด์ง ๋ฐฐ์ด์์ ์ฐ์๋ k๊ฐ ์์์ ์ต๋ ํฉ์ ์ฐพ๋ ํจ์function maxSumSubarray(arr, k)..
[React] ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๊ฐ์ ํ ์ ์๋ 4๊ฐ์ง ํ
[React] ๋ฆฌ์กํธ ์ฝ๋๋ฅผ ๊ฐ์ ํ ์ ์๋ 4๊ฐ์ง ํ
2024.10.28TLDR์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์ปค๋ง ํ์ฉ์ปดํฌ๋ํธ ์ฑ
์ ๋ถ๋ฆฌ์กฐ๊ฑด๋ฌธ ๋์ ๊ฐ์ฒด map ์ฌ์ฉReact ๋ผ์ดํ์ฌ์ดํด ์ธ๋ถ์ ๋
๋ฆฝ์ ์ธ ๋ณ์ ๋ฐฐ์น 4 React Tips1. ์ปค๋ง ํ์ฉuser ์ํ๋ name, surname, address 3๊ฐ ์์ฑ์ ๊ฐ์ง๋ฉฐ, ์ด์ ๋์ํ๋ 3๊ฐ์ input ํ๋๊ฐ ํ์ํ๋ค. ์๋ ์ฝ๋์์ ๊ฐ ํ๋๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ณ๋์ ํธ๋ค๋ฌ๋ฅผ ๊ฐ๊ฐ ๋ง๋ค์ด์ ์ฌ์ฉํ๊ณ ์์ง๋ง, ์ด ํธ๋ค๋ฌ๋ค์ value๊ฐ ํ ๋ฌ๋ ์์ฑ ์ด๋ฆ๋ง ๋ค๋ฅผ ๋ฟ ๋๋จธ์ง ๋ก์ง์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์ค๋ณต์ด ๋ฐ์ํ๊ณ ์๋ค.export default function App() { const [user, setUser] = useState({ name: "", surname: "", address: "", }); co..
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 2
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 2
2024.10.13๐ก ์๋๋ Part 1์์ ์ด์ด์ง๋ ๋ด์ฉ Data Fetching๊ฐ์ฒด์งํฅ ์ธ์ด์ธ Dart๋ ๊ฑฐ์ ๋๋ถ๋ถ์ด ํด๋์ค ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค. API ํธ์ถ, ์๋ต ๋ฐ์ดํฐ ํ์
์ ์, ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ญ์ ๋ชจ๋ ํด๋์ค ๋ด๋ถ์์ ์ด๋ฃจ์ด์ง๋ค. ๋จผ์ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ชจ๋ธ ํด๋์ค๋ฅผ ์ ์ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก fromJson ์ด๋ผ๋ ์ด๋ฆ ์๋ ์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ JSON ๋ฐ์ดํฐ๋ฅผ ์ธ์คํด์คํ ์ํจ๋ค. ์๋ ์์์์ JSON ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐํ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค ํ๋์ ํ ๋นํ๊ณ ์๋ค.// lib/models/webtoon_model.dartclass WebtoonModel { final String id, title, thumb; WebtoonModel.fromJson(Map json) : tit..
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 1
[Flutter] ํ๋ฌํฐ ๊ธฐ์ด ๋ด์ฉ ์ ๋ฆฌ - Part 1
2024.10.05๋ฐฐ๊ฒฝ ์ง์Flutter ๊ตฌ์กฐ๐ก Dart๋ Just-In-Time(JIT) ์ปดํ์ผ๊ณผ Ahead-Of-Time(AOT) ์ปดํ์ผ์ ๋ชจ๋ ์ง์ํ๋ค. JIT ์ปดํ์ผ์ ๊ฐ๋ฐ ๋ชจ๋์ ์ฌ์ฉ๋ผ์ Hot Reload ๊ฐ์ ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ์ ๊ณตํ๋ค. AOT ์ปดํ์ผ์ ๋ฐฐํฌ ๋ชจ๋์ ์ฌ์ฉ๋ผ์ ์ปดํ์ผ๋ ์ฝ๋๊ฐ ๊ธฐ๊ธฐ์ ๋ ์ต์ ํ๋ ์ํ๋ก ์คํํ ์ ์๊ฒ ๋ง๋ ๋ค. ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ์์ ์ด์์ฒด์ (OS)์ ์ง์ ์ํธ์์ฉํ์ฌ ๋ฒํผ, ํ
์คํธ ๊ฐ์ UI ์์๋ฅผ ์์ฑํ๋ค.Flutter๋ ๋ค์ดํฐ๋ธ ํ๋ซํผ์ ์์ ฏ์ ์ฌ์ฉํ์ง ์๊ณ ์์ฒด์ ์ผ๋ก UI๋ฅผ ๋ ๋๋ง ํ๋ค. ์ด๋ ๋น๋์ค ๊ฒ์ ์์ง์ ์๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๋ค.Dart๋ก ์์ฑ๋ ์ฝ๋๋ Flutter ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ์ ์ํ๊ณ , ์ค์ ํ๋ฉด์ ๋ ๋๋ง ํ๋ ์์
์ C++๋ก ์์ฑ๋ Flutter ..
[TS] ํ์
์คํฌ๋ฆฝํธ ๋ธ๋๋๋ ํ์
[TS] ํ์ ์คํฌ๋ฆฝํธ ๋ธ๋๋๋ ํ์
2024.09.26Branded Typeํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ฒด์ ํน์ ์์ฑ์ด ๋์ผํ ํ์
์ ๊ฐ์ง ๋๊ฐ ๋ง๋ค. ์ด๋ก ์ธํด ํ์
์์คํ
์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ผ๋ ๋
ผ๋ฆฌ์ ์ค๋ฅ๋ ํ์
์์ ์ฑ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์๋ค.type User = { id: string; name: string;};type Post = { id: string; ownerId: string; comments: Comments[];};type Comments = { id: string; timestamp: string; body: string; authorId: string;}; ์ ์์์์ User.id, Post.id, Comments.id๋ ๋ชจ๋ string ํ์
์ด๋ค. ์ฒซ ๋ฒ์งธ ์ธ์ postId, ๋ ๋ฒ์งธ ์ธ์..
๋์ปค(Docker)์ ์ฟ ๋ฒ๋คํฐ์ค(Kubernetes) ๊ธฐ๋ณธ ๊ฐ๋
๋์ปค(Docker)์ ์ฟ ๋ฒ๋คํฐ์ค(Kubernetes) ๊ธฐ๋ณธ ๊ฐ๋
2024.09.17๋ค์ด๊ฐ๋ฉฐ๊ณผ๊ฑฐ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ ๋ ๋ค์ํ ํ๊ฒฝ์์ ๋ฐ์ํ๋ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ง์ ๋
ธ๋ ฅ์ด ํ์ํ๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ ์ปจํ
์ด๋ ๊ธฐ์ ์ ๋์
์ผ๋ก ์ด๋ฅผ ํ์คํํ๊ณ ์๋ํํ ์ ์๊ฒ ๋์๋ค. ํนํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ์ปจํ
์ด๋ ๊ด๋ฆฌ ๋๊ตฌ์ ๊ด๋ จํ ์ฉ์ด๋ฅผ ์์ฃผ ์ ํ๊ฒ ๋๋ค. ๊ทธ๋์ ๋์ปค, ์ฟ ๋ฒ๋คํฐ์ค ๊ทธ๋ฆฌ๊ณ ๋ค์ค ํด๋ฌ์คํฐ์ ๋ํ ๊ธฐ๋ณธ ๊ฐ๋
์ ์ ๋ฆฌํด ๋ดค๋ค. ๋์ปค (Docker) ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ๋จผ์ ๋์ปค(Docker)์ ๋ํด ์์์ผ ํ๋ค. 2013๋
์ ํ์ํ ๋์ปค๋ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์คํ ํ๊ฒฝ๊ณผ ์์ค ์ฝ๋๋ฅผ ํจ๊ป ํจํค์งํ์ฌ ํ๋์ ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ก ๋ง๋๋ ํ์ ์ ์ธ ๋ฐฉ์์ ์ ์ํ๋ค. ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ ๊ทธ ์์ฒด๊ฐ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๋ฐฐํฌํ ์ ์๋ ์ฅ์ ์ด ์๋ค. ์ฆ,..
[Flutter] ํ๋ฌํฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ for macOS
[Flutter] ํ๋ฌํฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ for macOS
2024.09.03Android Studioโถ Android Studio ์ค์น (JetBrains ToolBox๋ก๋ ์ค์น ๊ฐ๋ฅ)brew install android-studio โท Android Studio ์คํ - Setup Wizard - Install Type์์ Standard ์ ํ ํ ์ค์น. Standard ์ ํ ์ ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํ์ํ SDK, ๋น๋ ํด, ์๋ฎฌ๋ ์ดํฐ๊ฐ ์๋์ผ๋ก ์ค์น๋๋ค. Setup Wizard๋ Android Studio๋ฅผ ์ฒ์ ์คํํ์ ๋ ๋์จ๋ค.โธ Settings(โ ,) - Android SDK ๋ฉ๋ด - SDK Tools ํญ - Android SDK Command-line Tools ์ฒดํฌ.โน Flutter, Dart ํ๋ฌ๊ทธ์ธ ์ค์น Flutter / Dart SDK๐ก Flutter SD..
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 2
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 2
2024.08.21Dart์ JavaScript๋ ๋ง์ ๊ฐ๋
์ ๊ณต์ ํ๋ค. Dart ์ญ์ ์ด๋ฒคํธ ๋ฃจํ์์ ์คํ๋๊ณ , ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ Future๋ผ๋ ๊ฐ๋
์ด ์กด์ฌํ๋ค. Future๋ ์๋ฐ์คํฌ๋ฆฝํธ์ Promise์ ๋น์ทํ๋ค. Dart๋ ์ ์ ํ์
์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ด ์๋ค๋ฉด Dart๋ฅผ ๋ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ค. Dart์ JavaScript์ ๋ค๋ฅธ ์ ๊ณผ ๋น์ทํ ์ ์ Learning Dart as a JavaScript developer ํ์ด์ง์ ์์ธํ ์ค๋ช
๋ผ ์์ด์ ์ ๋ฆฌํด๋ดค๋ค. ๐ก ์๋๋ Part 1์์ ์ด์ด์ง๋ Part 2 ๋ด์ฉ. Asynchrony์๋ฐ์คํฌ๋ฆฝํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก Dart ๊ฐ์๋จธ์ (VM)์ ๋จ์ผ ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์คํํ๋ค. ๋ชจ๋ ์ฝ๋๋ ๋๊ธฐ์ ์ผ๋ก ์คํ๋์ง๋ง, ๋น๋๊ธฐ ๋๊ตฌ..
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 1
[Dart] ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ๋คํธ ํ์ต - Part 1
2024.08.21Dart์ JavaScript๋ ๋ง์ ๊ฐ๋
์ ๊ณต์ ํ๋ค. Dart ์ญ์ ์ด๋ฒคํธ ๋ฃจํ์์ ์คํ๋๊ณ , ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ Future๋ผ๋ ๊ฐ๋
์ด ์กด์ฌํ๋ค. Future๋ ์๋ฐ์คํฌ๋ฆฝํธ์ Promise์ ๋น์ทํ๋ค. Dart๋ ์ ์ ํ์
์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ด ์๋ค๋ฉด Dart๋ฅผ ๋ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ค. Dart์ JavaScript์ ๋ค๋ฅธ ์ ๊ณผ ๋น์ทํ ์ ์ Learning Dart as a JavaScript developer ํ์ด์ง์ ์์ธํ ์ค๋ช
๋ผ ์์ด์ ์ ๋ฆฌํด๋ดค๋ค. Conventions and lintingDart ํ์์ ๊ณต์์ ์ผ๋ก ์ฝ๋ ์คํ์ผ ๊ฐ์ด๋์ Lint ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค.dart fix๋ฅผ ํตํด ์ฝ๋ ์ด์๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์์ ํ ์ ์๋ค.dart format์ ํตํด ์ฝ๋๋ฅผ ํฌ๋งคํ
ํ ..
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋ / ๋ฐฑํธ๋ํน์ผ๋ก ๋ชจ๋ ๋ถ๋ถ์งํฉ ์ฐพ๊ธฐ
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋ / ๋ฐฑํธ๋ํน์ผ๋ก ๋ชจ๋ ๋ถ๋ถ์งํฉ ์ฐพ๊ธฐ
2024.07.29ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2 ํผ๋ก๋ ๋ฌธ์ ๋ ๋์ ๋ชฉ๋ก๊ณผ HP๊ฐ ์ฃผ์ด์ก์ ๋ ๋ฐฉ๋ฌธํ ์ ์๋ ์ต๋ ๋์ ์ ์๋ฅผ ๋ฐํํด์ผ ํ๋ค. ๊ฐ ๋์ ์ ์ต์ ํผ๋ก๋์ ์๋ชจ ํผ๋ก๋๋ฅผ ๊ฐ์ง๋ค. ์ต์ ํผ๋ก๋๋ ํด๋น ๋์ ์ ๋ฐฉ๋ฌธํ๊ธฐ ์ํด ํ์ํ ์ต์ HP๋ฅผ ์๋ฏธํ๊ณ , ์๋ชจ ํผ๋ก๋๋ ๋ง ๊ทธ๋๋ก ํด๋น ๋์ ์ ๋ฐฉ๋ฌธํ์ ๋ ์๋ชจ๋๋ HP๋ฅผ ๋ํ๋ธ๋ค. ๋ฌธ์ ์์ ์ฃผ์ด์ง๋ ๋งค๊ฐ๋ณ์๋ ์๋์ ๊ฐ๋ค. k : ์์ HP. e.g., 80dungeons : [์ต์ ํผ๋ก๋, ์๋ชจ ํผ๋ก๋]๋ก ์ด๋ฃจ์ด์ง ๋์ ๋ชฉ๋ก. e.g., [[80,20],[50,40],[30,10]] ์ต์ ํผ๋ก๋์ ์๋ชจ ํผ๋ก๋๊ฐ ๊ฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฌธ ์์์ ๋ฐ๋ผ ๋ฐฉ๋ฌธํ ์ ์๋ ๋์ ์ ์๊ฐ ๋ฌ๋ผ์ง๋ค. ์๋ฅผ ๋ค์ด [[80,20],[50,40],[30,10]] ๋์ ๋ชฉ๋ก์์ 2~3๋ฒ(i1..