LLM์ด ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ์ง€์‹ ์ €์žฅ์†Œ, LLM Wiki๋ž€?
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/AI
๋„์ž…LLM์„ ํ™œ์šฉํ•ด ๋งŽ์€ ๋ฌธ์„œ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๊ฐ€ RAG(Retrieval-Augmented Generation)๋‹ค.RAG๋Š” ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์„œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ , ๊ฒ€์ƒ‰๋œ ๋‚ด์šฉ์„ LLM์—๊ฒŒ ์ „๋‹ฌํ•ด ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•œ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์„œ๊ฐ€ ๊ณ„์† ์ถ”๊ฐ€๋˜๊ณ  ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ๋‚ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž๋ฃŒ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž.ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ๋ฌธ์„œํšŒ์˜๋กAPI ๋ช…์„ธ์žฅ์•  ๊ธฐ๋ก์—…๋ฌด ๊ฐ€์ด๋“œ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๊ฐ™์€ ๋‚ด์šฉ์ด ์—ฌ๋Ÿฌ ๋ฌธ์„œ์— ๋ฐ˜๋ณต๋˜๊ฑฐ๋‚˜, ๊ณผ๊ฑฐ ๋ฌธ์„œ์™€ ์ตœ์‹  ๋ฌธ์„œ์˜ ๋‚ด์šฉ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.RAG๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์„œ๋ฅผ ์ž˜ ์ฐพ์•„์ฃผ๋Š” ๊ฒƒ์—๋Š” ๊ฐ•ํ•˜์ง€๋งŒ, ์—ฌ๋Ÿฌ ๋ฌธ์„œ์— ํฉ์–ด์ง„ ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ์ตœ์‹  ์ง€์‹์œผ๋กœ ์ •๋ฆฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋ณ„๊ฐœ์˜ ๋ฌธ์ œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด LLM Wiki๋‹ค.โšก ..
MCP Server ๊ตฌํ˜„ ๋ฐ Notion ์—ฐ๋™
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/AI
๋„์ž…์ตœ๊ทผ AI ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ LLM์ด ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋‚˜ ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, ์™ธ๋ถ€ ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์กฐํšŒํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์— ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ ๊ณผ์ •์—์„œ ์•Œ๊ฒŒ ๋œ ๊ฒƒ์ด MCP(Model Context Protocol)๋‹ค. MCP์˜ ๊ตฌ์กฐ๋ฅผ ์ง์ ‘ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด Node.js + TypeScript๋กœ MCP Server๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , Notion API์™€ ์—ฐ๊ฒฐํ•ด Cursor์—์„œ Notion์˜ ํŽ˜์ด์ง€๋ฅผ ๊ฒ€์ƒ‰·์กฐํšŒ·์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค.1. MCP๋ž€?MCP(Model Context Protocol)๋Š” LLM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ๋ฐ ๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.Cursor / Claude ๋“ฑ์˜ AI โ”‚ ..
ngrok์„ ์ด์šฉํ•œ ํ„ฐ๋„๋ง
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/AI
๐Ÿ’ก ํ„ฐ๋„๋ง(Tunneling)์ด๋ž€?ํ„ฐ๋„๋ง(Tunneling)์€ ํ•œ ๋„คํŠธ์›Œํฌ์—์„œ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„์— ๊ฐ€์ƒ์˜ ํ†ต์‹  ๊ฒฝ๋กœ(Tunnel)๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋‘ ์ง€์  ์‚ฌ์ด์— ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต๋กœ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ ์ด๋ผ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ngrok์€ ์ด ํ„ฐ๋„๋ง ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท ↔ ngrok ↔ localhost ๊ฐ„์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์ด๋‹ค. 1๏ธโƒฃ ngrok์ด๋ž€?ngrok์€ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์„œ๋ฒ„(localhost)๋ฅผ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต๊ฐœ URL์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํ„ฐ๋„๋ง(Tunneling) ๋„๊ตฌ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•œ ์„œ๋ฒ„๋Š” ์ž์‹ ์˜ PC์—์„œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ngrok์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต๊ฐœ H..
RAG ๊ตฌํ˜„ํ•˜๊ธฐ
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/AI
๋„์ž…LLM์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ํ•œ ๊ฐ€์ง€ ํ•œ๊ณ„๋ฅผ ์‰ฝ๊ฒŒ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.LLM์ด ๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํšŒ์‚ฌ์˜ ํ”„๋กœ์ ํŠธ ๊ฐ€์ด๋“œ PDF๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž.์ผ๋ฐ˜์ ์ธ LLM์—๊ฒŒ "์ด ํ”„๋กœ์ ํŠธ์—์„œ ๋กœ๊ทธ์ธ ์š”์ฒญ์€ ์–ด๋–ค ํ๋ฆ„์œผ๋กœ ์ฒ˜๋ฆฌ๋ผ?"๋ผ๊ณ  ๋ฌผ์–ด๋ด๋„ LLM์€ ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ ํ•™์Šตํ•œ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•˜๊ฒŒ ๋‹ต๋ณ€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.๊ทธ๋ ‡๋‹ค๊ณ  ๋งค๋ฒˆ ์ˆ˜์‹ญ ํŽ˜์ด์ง€์˜ PDF๋ฅผ ํ”„๋กฌํ”„ํŠธ์— ์ „๋ถ€ ๋„ฃ๋Š” ๊ฒƒ๋„ ๋น„ํšจ์œจ์ ์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด RAG(Retrieval-Augmented Generation)๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์‹ค์ œ ํ”„๋กœ์ ํŠธ ๊ฐ€์ด๋“œ PDF๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•  ์ˆ˜ ์žˆ๋„๋ก Python์œผ๋กœ RAG ์‹œ์Šคํ…œ์„ ์ง์ ‘ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๋‹จ์ˆœํ•œ Vector Search์—์„œ ๋๋‚ด์ง€ ..
[SQL] MySQL vs. PostgreSQL
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/SQL
๐Ÿ“ MySQL vs. PostgreSQL ์ฐจ์ด์ ๊ตฌ๋ถ„ MySQL PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ˆ ์ˆœ์ˆ˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDBMS)๊ฐ์ฒด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ (ORDBMS)๊ธฐ๋Šฅ๋ทฐ, ํŠธ๋ฆฌ๊ฑฐ ๋ฐ ํ”„๋กœ์‹œ์ €์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋Šฅ์„ ์ œํ•œ์ ์œผ๋กœ ์ง€์›๊ตฌ์ฒดํ™”๋œ ๋ทฐ, INSTEAD OF ํŠธ๋ฆฌ๊ฑฐ, ์—ฌ๋Ÿฌ ์–ธ์–ด์˜ ์ €์žฅ ํ”„๋กœ์‹œ์ €์™€ ๊ฐ™์€ ์ตœ๊ณ ๊ธ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋Šฅ์„ ์ง€์›๋ฐ์ดํ„ฐ ์œ ํ˜•์ˆซ์ž, ๋ฌธ์ž, ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„, ๊ณต๊ฐ„, JSON ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์›๊ธฐํ•˜ํ•™, ์—ด๊ฑฐํ˜•, ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ, ๋ฐฐ์—ด, ๋ฒ”์œ„, XML, hstore, ๋ณตํ•ฉ์„ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  MySQL ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์›ACID ๊ทœ์ • ์ค€์ˆ˜InnoDB ์—”์ง„์„ ํ†ตํ•ด ์ง€์›๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์žฅ ์—„๊ฒฉํ•œ ์ˆ˜์ค€์˜ ACID๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›์ธ๋ฑ์ŠคB-ํŠธ๋ฆฌ ๋ฐ R-ํŠธ๋ฆฌ ์ธ๋ฑ์Šค๋ฅผ ์ง€์›ํŠธ๋ฆฌ์™€..
[Spring Boot] Local LLM Ollama ์„ค์น˜ ๋ฐ Spring AI ์—ฐ๋™
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/Spring
1๏ธโƒฃ Ollama ์„ค์น˜ ๋ฐ ์‹คํ–‰Ollama๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ(macOS, Windows, Linux)์—์„œ ์˜คํ”ˆ์†Œ์Šค LLM(Llama, Qwen, Gemma ๋“ฑ)์„ ๋ช…๋ น์–ด ํ•œ ์ค„๋กœ ํŽธ๋ฆฌํ•˜๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋„๊ตฌ์ด๋‹ค. macOS ์„ค์น˜ ๊ธฐ์ค€ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  Homebrew๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.# 1. macOS ์„ค์น˜ (Homebrew ์ด์šฉ)brew install ollama# 2. ์„ค์น˜ ํ™•์ธ ๋ฐ ๋ฒ„์ „ ์ฒดํฌollama --version 2๏ธโƒฃ Ollama ์„œ๋ฒ„ ์‹คํ–‰ ๋ฐ ๋™์ž‘ ํ™•์ธOllama๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์„œ๋ฒ„(API ์„œ๋ฒ„) ํ˜•ํƒœ๋กœ ์ž‘๋™ํ•œ๋‹ค. # ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ Ollama ์‹คํ–‰ (ํฌํŠธ: 11434)ollama serve ๊ธฐ๋ณธ ํฌํŠธ: http://localhost:11434..
[Spring Boot] MyBatis ์—ฐ๋™ ๋ฐ ๊ฐœ๋… ์ •๋ฆฌ (MySQL ํ™˜๊ฒฝ)
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/Spring
Spring Boot ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด MyBatis๋ฅผ ์—ฐ๋™ํ•˜๋Š” ์ „์ฒด์ ์ธ ๊ณผ์ •๊ณผ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ •๋ฆฌํ–ˆ๋‹ค. ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋“ค์—์„œ๋Š” JPA๋ฅผ ํ™œ์šฉํ•ด DB ์—ฐ๋™์„ ํ•ด์™”๋Š”๋ฐ,์•„์ง ๋งŽ์€ ํšŒ์‚ฌ์—์„œ MyBatis๋ฅผ ํ™œ์šฉํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ฃ๊ณ  ์ง์ ‘ ์ฟผ๋ฆฌ๋ฅผ ์งœ๋ณด๋Š” ๊ฒƒ๋„ ์ข‹๊ฒ ๋‹ค๊ณ  ํŒ๋‹จํ•ด ํ•™์Šตํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ณ ์ž ํ–ˆ๋‹ค.(IT ์Šคํƒ€ํŠธ์—… ํšŒ์‚ฌ๋‚˜ ๋„ค์นด๋ผ์ฟ ๋ฐฐ๊ฐ™์€ IT ํ”Œ๋žซํผ ๋Œ€๊ธฐ์—…์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์•„์ง MyBatis ํ™˜๊ฒฝ์— ๋จธ๋ฌผ๊ณ  ์žˆ์Œ) 1. MyBatis ์˜์กด์„ฑ(Dependency) ์ถ”๊ฐ€๊ฐ€์žฅ ๋จผ์ € ํ”„๋กœ์ ํŠธ์˜ build.gradle ํŒŒ์ผ์— MyBatis์™€ MySQL ์ปค๋„ฅํ„ฐ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.dependencies { // MyBatis Spring Boot Starter (Spring Boot 3.x ๋ฒ„์ „ ๊ธฐ์ค€ 3.0.x ..
Blob(Binary Large Object) | ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํŒŒ์ผ ์ €์žฅ ๋ฐฉ์‹
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/React
Blob ์ •์˜Blob(Binary Large Object) : ์ด๋ฏธ์ง€, ์˜ค๋””์˜ค, ๋น„๋””์˜ค, ๋ฌธ์„œ์™€ ๊ฐ™์€ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํŒŒ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ. โ–ถ๏ธŽ Integer ํƒ€์ž…, String ํƒ€์ž… ๋“ฑ๊ณผ ๊ฐ™์ด Blob ํƒ€์ž…์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ข‹์Œ. base64 vs. Blobbase64 ๋Š” ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ ํฌ๋งท์ด๊ณ ,Blob ์€ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค. Binary(๋ฐ”์ด๋„ˆ๋ฆฌ)๋Š” 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์ด๊ณ ,base64๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์‹ค์ œ๋กœ ์ถœ๋ ฅ๋œ base64 ํ…์ŠคํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ๋ฐ”๋กœ ๋ณด์—ฌ์ง„๋‹ค.๋‹ค๋งŒ base64๋Š” ๋ฌธ์ž์—ด์ด ๋„ˆ๋ฌด ๊ธธ์–ด DB ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•ด์ง€๋ฏ€๋กœ,์กฐํšŒ๊ฐ€ ์ž..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv.3 ์ •์ˆ˜ ์‚ผ๊ฐํ˜• - JAVA
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/Programmers
๋ฌธ์ œ ๋งํฌhttps://school.programmers.co.kr/learn/courses/30/lessons/43105 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr ๋ฌธ์ œ ํ’€์ดDP ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด๋Š” Top-down ๋ฐฉ์‹์ด๋ž‘ Bottom-up ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋ˆ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์ตœ๋Œ€๊ฒฝ๋กœ ๊ฐ’์„ ์‹œ๊ฐ„ ํšจ์œจ์„ ์‹ ๊ฒฝ์จ์„œ DP๋กœ ์ ‘๊ทผํ•ด์•ผํ•˜๋ฏ€๋กœ,์•„๋ž˜์—์„œ ์œ„(Bottom-up)๋กœ ์˜ฌ๋ผ์˜ค๋ฉด์„œ i-1 ํ–‰์˜ j์™€ j+1 ์ค‘ ์ตœ๋Œ€๊ฐ’๊ณผ iํ–‰ j ํ˜„์žฌ ์œ„์น˜๊ฐ’์„ ๋”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋‘์–ด ๊ณ„์‚ฐ ์ค‘๋ณต์„ ์—†์•ค๋‹ค. ์ฆ‰ ์•„๋ž˜ ๋‘ ๊ฐ’ ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ์„ ํƒํ•ด ์˜ฌ๋ผ์˜ค๋ฉด์„œ ์ €์žฅํ•œ ๋ˆ„์ ๊ฐ’์„ ์ตœ์ข…์ ์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด๋œ๋‹ค.์ œ์ถœ ์ฝ”๋“œimport java.ut..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv.3 N์œผ๋กœ ๋ณ€ํ™˜ - JAVA
ยท
๐Ÿ’ป ๊ฐœ๋ฐœ/Programmers
๋ฌธ์ œ ๋งํฌhttps://school.programmers.co.kr/learn/courses/30/lessons/42895 ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr ํ’€์ดDP ๋ฌธ์ œ ํ‚คํŠธ๋ฅผ ํ’€๊ณ  ์žˆ๋Š” ์ค‘์ด๋ผ DP๋กœ ์ ‘๊ทผํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์‹œ์ž‘ํ–ˆ์ง€๋งŒDP๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ทœ์น™์ด ๋ณด์ด์ง€ ์•Š์•˜์Œ!!! ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ํ’€์ด ๋ธ”๋กœ๊ทธ๋“ค์„ ์ฐพ์•„๋ณด๋‹ˆ๊นŒ ์ด ๋ฌธ์ œ๋Š” ์ˆ˜ํ•™์  ๊ทœ์น™์„ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,N์„ i๊ฐœ ์ผ์„ ๋•Œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž๋“ค๋กœ i+1, i+2 ... ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์‰ฝ๊ฒŒ ํ’€์–ด๋ณด์ž๋ฉด N=5์ผ ๋•Œ,dp[1] = {5}dp[2] = {55, 5+5, 5-5, 5*5, ... }dp[3] = dp[1] + dp[2]..