๐๋ฐฑ์๋ : BackEnd
JSP๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์๋ Web Application Architecture๋ ํฌ๊ฒ model1๊ณผ model2 ๋ก ๋๋๋ค. Model1 : client์ ์์ฒญ์ ๋ํ Logic์ฒ๋ฆฌ์ response page(view)์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๋ชจ๋ ํจ Model2 : ํ๋ฉด์ ๋ณด์ด๋ ๋ถ๋ถ๋ง ์ฒ๋ฆฌ (= MVCํจํด์ ์น ๊ฐ๋ฐ์ ๋์
ํ ๊ตฌ์กฐ ) Model1 view์ logic์ JSPํ์ด์ง ํ๋์์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ ์ฅ์ ๊ตฌ์กฐ๊ฐ ๋จ์ํ๊ณ ์ง๊ด์ , ๋ฐฐ์ฐ๊ธฐ ์ฝ๋ค ๊ฐ๋ฐ ์๊ฐ์ด ๋น๊ต์ ์งง๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ๋น์ฉ์ด ๊ฐ์ ๋จ์ view์ฝ๋์ ๋ก์ง์ฒ๋ฆฌ๋ฅผ ์ํ java์ฝ๋๊ฐ ์์ฌ ์์ด์ JSP์ฝ๋ ์์ฒด๊ฐ ๋ณต์กํด์ง๋ค JSP์ฝ๋์ BE์ FE๊ฐ ํผ์ฌ๋์ด ๋ถ์
์ด ํ๋ค์ด์ง ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง๊ฒ ๋๋ฉด ์ฝ๋๊ฐ ๋ณต์กํด์ ธ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ ํ์ฅ..
๐๋ฐฑ์๋ : BackEnd
JSP(Java Server Page) HTML๋ด์ ์๋ฐ ์ฝ๋๋ฅผ ์ฝ์
ํ์ฌ ์น ์๋ฒ์์ ๋์ ์ผ๋ก ์น ํ์ด์ง๋ฅผ ์์ฑํ์ฌ ์น ๋ธ๋ผ์ฐ์ ์ ๋๋ ค์ฃผ๋ ์ธ์ด ์คํ ์ servlet์ผ๋ก ๋ณํ๋ ํ ์คํ ๋จ (์ต์ด ํ ๋ฒ + JSP์์ ์) ๋ณํ์ WAS๊ฐ ํด์ค๋ค. JSP๊ฐ ๋น ๋ฅผ๊น Servlet์ด ๋น ๋ฅผ๊น? JSP๋ Servlet์ผ๋ก ๋ณํ๋๋ ๊ณผ์ ์ด ์๊ธด ํ์ง๋ง, ์ต์ด ํ ๋ฒ๊ณผ ์์ ์์๋ง ๋ณํ๋๋ค. JSP์์ GET๊ณผ POST๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ request.getMethod() JSP ๋ฌธ๋ฒ ์ ์ธ๋ฌธ ๋ฉค๋ฒ๋ณ์ ์ ์ธ์ด๋ ๋ฉ์๋๋ฅผ ์ ์ธํ๋ ์์ญ ์ ์ธ๋ฌธ ์์ System.out.println("A"); ๊ณผ ๊ฐ์ ๋ช
๋ น์ ๋ฃ์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ฒ๋ฆฌ๋ฌธ - ํด๋ผ์ด์ธํธ ์์ฒญ ์ ๋งค๋ฒ ํธ์ถ๋๋ ์์ญ. - Servlet์ผ๋ก ๋ณํ ์ se..
๐์ฝ๋ฉํ
์คํธ:CodingTest
์ ์์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ํ์์ํ๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ค. ํ์ด ์์ 1. ์
๋ ฅ์ ๋ฐํ์ผ๋ก ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑ. (๋
ธ๋ ํด๋์ค๋ฅผ ํ์ฉ) 2. ๋
ธ๋ ํด๋์ค ๋ด๋ถ์ insert ํจ์ ์์ฑ. insert ํจ์ : ์
๋ ฅ๋ ๋
ธ๋์ ๊ฐ์ ํ์ฌ ๋
ธ๋ ๊ฐ๊ณผ ๋น๊ตํ์ฌ, ์ผ์ชฝ ํน์ ์ค๋ฅธ์ชฝ์ ๋ฌ์์ฃผ๋ ํจ์. ์ด๋ insert ํจ์์ ์ฌ๊ทํจ์๋ฅผ ์ ์ฉํด์ผ ํ๋ค. ํด๋น ์์น๊ฐ ๋น์ด์์ผ๋ฉด ํด๋น ์์น์ ๋
ธ๋๋ฅผ ๋ฌ์์ฃผ๊ณ , ๋น์ด์์ง ์๋ค๋ฉด ํด๋น ์์น์ ์๋ ๋
ธ๋์ insertํจ์๋ฅผ ์ฌ๊ทํธ์ถ ์ฝ๋ package com.mincheolsong; import java.io.*; import java.util.*; public class Main { // BOJ 5639๋ฒ ์ด์ง ๊ฒ์ ํธ๋ฆฌ static class Node{ int num; N..
๐๋ฐฑ์๋ : BackEnd
1. WebArchitecture page ์ด๋๋ฐฉ๋ฒ url ์
๋ ฅ (get๋ฐฉ์) link (get๋ฐฉ์) form (get๋ฐฉ์) get (get๋ฐฉ์) post ์ฆ form์ post๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ง ์์ผ๋ฉด ๋ชจ๋ GET ๋ฐฉ์์ด๋ค. Persistence Login = ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก์ง 2. Servlet Servlet = Java + HTML ์๋ฐ์์ ๋ฐฑ์ค๋๋ฅผ ์ง์ํ๋ api ๋ ๊ฐ์ง servlet → ์๋ฐ์์ html์ด ํฌํจ jsp → html ์์ ์๋ฐ๊ฐ ํฌํจ ์ฒ์์ servlet์ด ๋จผ์ ๋์ด → ์๋ฐ์ดํ ์์ html์ ํ๋ํ๋ ๋ฃ๋๊ฒ ๋๋ฌด ํ๋ค์ด → html์ ์๋ฐ ๋ฃ์ผ๋ฉด ์ด๋จ๊น? → jsp ๋ฑ์ฅ ์ธํ ์์ฒด๊ฐ .java ์๋ธ๋ฆฟ ํ์ผ์์ ์์ฑ์ ์ ๋ง๋ค์ด๋ ๋จ → init๋ฉ์๋ ์ฌ์ฉํ๋ฉด ๋๋๊น ์น์์ ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
๋ค์ต์คํธ๋ผ๋ก ํ ์ ์๋ ๋ฌธ์ ์ํฉ ํ ์ง์ ์์ ๋ค๋ฅธ ํ ์ง์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก ํ ์ง์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ง์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก ๋ชจ๋ ์ง์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ง์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก ํด๋น ๋ฌธ์ ๋ ํ ์ง์ ์์ ๋ค๋ฅธ ํ ์ง์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํด์ผ ํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ๊ทธ๋ํ๋ก ๋ฐ๊พธ๋๊ฒ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค. ์๋น์ด๋ ์์น X์์ -1, +1, *2 ๋ก ์์ง์ผ ์ ์์ผ๋๊น ์์น X๋ฅผ ๋
ธ๋๋ผ๊ณ ์๊ฐํ์ ๋ X-1, X+1, X*2 ๋ฅผ ์ฐ๊ฒฐ๋ ๋
ธ๋, ๊ฐ์ค์น๋ ๋ฌธ์ ์์ ์ฃผ์ด์ง (1, 1, 0) ์ผ๋ก ์๊ฐํ๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ (์ฐ์ ์์ํ ํ์ฉ) ์ฝ๋ package com.mincheolsong; import java.io.*; import java.util.*; public class Main { // boj 13549 ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
ํธ๋ฆฌ์ ์ง๋ฆ์ด๋ ํธ๋ฆฌ์์ ์์์ ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ ์ค ๊ฐ์ฅ ๊ธด ๊ฒ์ด๋ค. ๊ฒฐ๋ก ์์์ ์ ์ ์์ ๊ฐ์ฅ ๊ฑฐ๋ฆฌ๊ฐ ๊ธด ๋
ธ๋๋ฅผ ์ฐพ๋๋ค. (dfs ํ ๋ฒ) ์ฐพ์์ง ๋
ธ๋์์ ๊ฐ์ฅ ๊ฑฐ๋ฆฌ๊ฐ ๊ธด ๋
ธ๋๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ฉด ๋๋ค. (dfsํ ๋ฒ) (์ด dfs ๋ ๋ฒ์ ํธ๋ฆฌ์ ์ง๋ฆ์ ์ฐพ์ ์ ์๋ค) ์ค๋ช
์ ํธ๋ฆฌ์ ๊ฒฝ์ฐ 1 - 3 - 4 - 5 ๊ฐ ํธ๋ฆฌ์ ์ง๋ฆ(ํธ๋ฆฌ์์ ์์์ ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ ์ค ๊ฐ์ฅ ๊ธด ๊ฒ) ๊ฒฝ๋ก๊ฐ ๋๋ค. ์ฌ๊ธฐ์ ํธ๋ฆฌ์ ์ง๋ฆ์ด ๋๋ ์ ๋ ๋
ธ๋๋ 1๊ณผ 5์ด๋ค. ์ด ๋ ์์์ ์ ์ ์์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๊ธด ๋
ธ๋๋ 1 ํน์ 5๋ฅผ ๋ฐ๋์ ์ง๋๊ฒ ๋๋ค. 1์์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๊ธด ๊ฒฝ๋ก : 1 - 3 - 4 - 5 2์์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๊ธด ๊ฒฝ๋ก : 2 - 4 - 5 3์์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๊ธด ๊ฒฝ๋ก : 3 - 4 - 5 4์์ ๊ฑฐ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
๋ชจ๋ ๋
ธ๋์์ ๋ค๋ฅธ ๋ชจ๋ ๋
ธ๋๊น์ง์ ์ต๋จ๊ฒฝ๋ก๋ฅผ ๋ชจ๋ ๊ณ์ฐํจ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋จ๊ณ๋ณ๋ก ๊ฑฐ์ณ ๊ฐ๋ ๋
ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ํ ๋ค์ต์คํธ๋ผ์ ๋ค๋ฅด๊ฒ ๋งค ๋จ๊ณ๋ง๋ค ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋ ์ค์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ ๋
ธ๋๋ฅผ ์ฐพ๋ ๊ณผ์ ์ด ํ์ํ์ง ์์. 2์ฐจ์ ํ
์ด๋ธ์ ์ต๋จ ๊ฑฐ๋ฆฌ ์ ๋ณด๋ฅผ ์ ์ฅ DP ์ ํ์ ์ํจ (์ ํ์์ ๋ง๊ฒ 3์ค FOR๋ฌธ์ ์ด์ฉํด์ 2์ฐจ์ ํ
์ด๋ธ์ ๊ฐฑ์ ) ๋
ธ๋์ ๊ณ์๊ฐ ๋ฐ์ง๊ทธ๋ํ(์์ ๊ทธ๋ํ์ ๊ฐ๊น์ด ๊ทธ๋ํ)์ธ ๊ฒฝ์ฐ ํ๋ก์ด๋ ์์ฌ ์๊ณ ๋ฆฌ์ฆ์ด ํจ์จ์ ์ด๋ค. ๋ฐ์ง๊ทธ๋ํ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ค์ต์คํธ๋ผ๋ฅผ n๋ฒ ๋๋ฆฌ๋๊ฒ ๋น ๋ฅด๋ค O(n^3)์ ์๊ฐ๋ณต์ก๋๋ก ๋ค์ต์คํธ๋ผ(์ธ์ ํ๋ ฌ์ ์ฌ์ฉํ ๊ฒฝ์ฐ)์ ์๊ฐ๋ณต์ก๋์ ๋์ผํ๋ค N์ด 100์ด๋ฉด → 100๋ง์ด์ด์ ๊ฐ๋ฅ, 500์ด์ด๋ → 1์ต 2์ฒ 500๋ง ์ด์ด์ tryํด๋ณผ ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
dp๋ก ํธ๋ ๋ฌธ์ . ์๊ฒ๋ ์ ์ ํ์์ ์ธ์ธ ๋ arr[r][c]๋ฅผ ํฌํจํ๋ ๊ฒฝ์ฐ์ ํฌํจํ์ง ์๋ ๊ฒฝ์ฐ๋ง ์๊ฐํ์ง ๋ง์ ์ด๋ฒ ๋ฌธ์ ๋ arr[r][c]๋ฅผ ๋ฝ์ ์ ์๋ ์ด์ ์์น๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค! dp๋ ์ต์ ํด์ ๋ถ๋ถ์ต์ ํด๋ฅผ ์๊ฐํ๋ฉฐ ์ ํ์์ ์ธ์์ผ ํ๋ค. ์ฒ์ ์ ๊ทผ๋ฐฉ์ arr[r][c] ์ ์คํฐ์ปค๋ฅผ ๋ผ๋ ๊ฒฝ์ฐ์ ๋ผ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด์ ์ ํ์์ ์ธ์ฐ๋ ค๊ณ ํ๋ค. ์ฌ๋ฐ๋ฅธ ์ ๊ทผ๋ฐฉ์ arr[r][c]์ ์คํฐ์ปค๋ฅผ ๋ ์ ์๋ ๊ฒฝ์ฐ๋ง ๊ณ ๋ คํ๊ณ , arr[r][c] ์คํฐ์ปค๋ฅผ ๋ ์ ์๋ ์ด์ ์์น (arr[1][c-1] or arr[1][c-2] ํน์ arr[0][c-1] or arr[0][c-2]) ๋ฅผ ๋ถ๋ถ์ต์ ํด๋ก ๋ณด๋ ๊ฒ ์ด์๋ค. ์ ํ์ r=0์ธ ๊ฒฝ์ฐ dp[r][c] = max{dp[1][c-1], dp[1][c..