Hamutaro - Hamtaro 4

์ „์ฒด ๊ธ€ 118

[Web] HTTP ์ƒํƒœ ์ฝ”๋“œ

HTTP ์ƒํƒœ ์ฝ”๋“œํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์— ๋Œ€ํ•ด ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์ˆซ์ž ์ฝ”๋“œ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„1xx : ์ •๋ณด (Informational)์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์—ˆ๊ณ  ์„œ๋ฒ„๊ฐ€ ์ž‘์—…์„ ๊ณ„์† ์ง„ํ–‰ ์ค‘์ž„์„ ์˜๋ฏธ์‹ค๋ฌด์—์„œ ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ2xx : ์„ฑ๊ณต (Successful)์š”์ฒญ์ด ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ200 OK : ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ201 Created : ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋จ204 No Content : ์š”์ฒญ์€ ์„ฑ๊ณตํ–ˆ์ง€๋งŒ ๋ฐ˜ํ™˜ํ•  ๋‚ด์šฉ์ด ์—†์Œ3xx : ๋ฆฌ๋‹ค์ด๋ ‰์…˜ (Redirection)์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•ด์•ผํ•จ301 Moved Permanently : ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ด๋™302 Found : ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ผ์‹œ์ ์œผ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— ์žˆ์Œ304 Not Modified..

Web 2024.12.01

[Web] HTTP ๋ฉ”์„œ๋“œ

์ฃผ์š” HTTP ๋ฉ”์„œ๋“œGET๋ฆฌ์†Œ์Šค ์กฐํšŒ์š”์ฒญํ•œ URL์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜ด์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Œ๊ฐ™์€ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ๋ฒˆํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•จex ) ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ, ์‚ฌ์šฉ์ž ์ •๋ณด ์กฐํšŒPOST์„œ๋ฒ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑ์š”์ฒญ ๋ณธ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ์„œ๋ฒ„๋กœ ์ „์†ก, ์„œ๋ฒ„๋Š” ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ๊ฐ™์€ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋ณด๋‚ด๋ฉด ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Œex ) ํšŒ์›๊ฐ€์ž…, ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑPUT๋ฆฌ์†Œ์Šค๋ฅผ ์ „์ฒด ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒ์„ฑ์š”์ฒญ ๋ณธ๋ฌธ์— ๋ฆฌ์†Œ์Šค ์ „์ฒด ๋ฐ์ดํ„ฐ ๋‹ด์•„ ์ „์†ก, ์„œ๋ฒ„๋Š” ๊ธฐ์กด ๋ฆฌ์†Œ์Šค ๋Œ€์ฒด๊ฐ™์€ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ๋ฒˆํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•จex ) ์‚ฌ์šฉ์ž ์ •๋ณด ์ „์ฒด ์—…๋ฐ์ดํŠธPATCH๋ฆฌ์†Œ์Šค์˜ ๋ถ€๋ถ„ ์ˆ˜์ •์š”์ฒญ ๋ณธ๋ฌธ์— ์ˆ˜์ •ํ•  ํ•„๋“œ๋งŒ ๋‹ด์•„ ์ „์†ก, ์„œ๋ฒ„๋Š” ํ•ด๋‹น ํ•„๋“œ๋งŒ ๋ณ€๊ฒฝex ) ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ณ€๊ฒฝDELETE์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œ๊ฐ™์€ ์š”์ฒญ..

Web 2024.12.01

[Silver II/JAVA] 24479, 24480 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… - ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ 1, 2

https://www.acmicpc.net/problem/24479  ๋ฌธ์ œ์˜ ์กฐ๊ฑด์ •์ ์˜ ์ˆ˜ : N๊ฐ„์„ ์˜ ์ˆ˜ : M์‹œ์ž‘ ์ •์  : R์ธ์ ‘ ์ •์ ์€ ์˜ค๋ฆ„์ฐจ์ˆœ ๋ฐฉ๋ฌธ (24479๋ฒˆ ๋ฌธ์ œ)์ธ์ ‘ ์ •์ ์€ ๋‚ด๋ฆผ์ฐจ์ˆœ ๋ฐฉ๋ฌธ (24480๋ฒˆ ๋ฌธ์ œ) ํ•„์š”ํ•œ ๊ฒƒArrayList (์ด์ฐจ์› Array๋Š” N*N์ด๋ผ ์‹œ๊ฐ„์ดˆ๊ณผ ๋ฐœ์ƒํ•จ) -> ์‹ค์ œ ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ๋งŒ ์ €์žฅํ•˜๋Š” ArrayList๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ - ์ด์ฐจ์› ๋ฐฐ์—ด์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(N)- ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(E), ์—ฌ๊ธฐ์„œ E๋Š” ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜. ์ธ์ ‘๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜์™€ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋น„๋ก€ํ•œ๋‹ค. ์ž…๋ ฅ๋ฐ›๊ธฐBufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[]..

Algorithm/BOJ 2024.12.01

[Linux] ์‚ฌ์šฉ์ค‘์ธ ํฌํŠธ ์ข…๋ฃŒํ•˜๊ธฐ (Port Kill)

Linux์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ ํ™•์ธsudo netstat -tuln | -grep ํฌํŠธ๋ฒˆํ˜ธ ํ•ด๋‹น ํฌํŠธ๋ฅผ ์‚ฌ์šฉ์ค‘์ธ ํ”„๋กœ์„ธ์Šค killsudo kill -9 PID  Windows์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ ํ™•์ธnetstat -ano | findstr ํฌํŠธ๋ฒˆํ˜ธ ํ•ด๋‹น ํฌํŠธ๋ฅผ ์‚ฌ์šฉ์ค‘์ธ ํ”„๋กœ์„ธ์Šค killtaskkill /f /pid PID  Mac์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ ํ™•์ธlsof -i ํฌํŠธ๋ฒˆํ˜ธ ํ•ด๋‹น ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค killkill -9 PID

Linux 2024.11.27

[Silver III/JAVA] 10451 ์ˆœ์—ด ์‚ฌ์ดํด

https://www.acmicpc.net/problem/10451  DFS, BFS ๋‘ ๊ฐ€์ง€๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N)์œผ๋กœ DFS, BFS ๋™์ผํ•˜๋‹ค. DFS (๊นŠ์ด์šฐ์„ ํƒ์ƒ‰) ํ’€์ด ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์ˆœ์—ด์„ 1๋ถ€ํ„ฐ ์„ธ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์˜ ํฌ๊ธฐ ์„ค์ •์— ์ฃผ์˜ํ•œ๋‹ค.์ž…๋ ฅ๋ฐ›์€ ์ˆœ์—ด์„ ๋ฐฐ์—ด์— ๋„ฃ์„ ๋•Œ๋„ ArrayIndexOutOfBoundsException๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•œ๋‹ค.์ˆœ์—ด ๋ฐฐ์—ด์— ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ ๊ฐ’์„ ๋„ฃ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” str ๋ฐฐ์—ด์—์„œ๋Š” index-1์„ ํ•ด์ค˜์•ผํ•œ๋‹ค.๋…ธ๋“œ ๋ฐฉ๋ฌธ์„ ๊ธฐ๋กํ•  boolean ํƒ€์ž…์˜ visited ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์ดํด์ด ์ค‘๋ณต์œผ๋กœ ์ฒดํฌ๋˜์ง€ ์•Š๋„๋ก ํƒ์ƒ‰ํ•œ๋‹ค.[ ํƒ์ƒ‰ ๊ณผ์ • ] * n = 1dfs(1)visited[1] = truenextNode = 3 dfs(3) vis..

Algorithm/BOJ 2024.11.23

[Silver V/JAVA] 13241 ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜

https://www.acmicpc.net/problem/13241   ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ = ๋‘ ์ˆ˜์˜ ๊ณฑ / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ํ’€์ด import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] str = br.readLine().split(" "); long a = Long.parseLong(str[0]); long..

Algorithm/BOJ 2024.11.22

[Algorithm] ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• (Euclidean Algorithm)

์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• (Euclidean Algorithm) ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ (GCD, LCM)์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ๊ตฌํ•œ ๋’ค ๋‘ ์ˆ˜์˜ ๊ณฑ์„ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ„๋ฉด ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณฑ = ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ * ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜∴ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ = ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณฑ / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ๋งŒ์•ฝ A, B๋ผ๋Š” ๋‘ ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(LCM)๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹คLCM = A*B / GCD

Algorithm 2024.11.22

[Silver V/JAVA] 10815 ์ˆซ์ž์นด๋“œ

https://www.acmicpc.net/problem/10815  ์ด์ง„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐฐ์—ด์„ ์ผ์ผ์ด ๋น„๊ตํ•˜๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋œฌ๋‹ค.์ด์ง„ํƒ์ƒ‰(Binary Search)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ (https://marginata.tistory.com/150)ํ’€์ด 1์€ System.out.print() ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ผ์ผ์ด ์ถœ๋ ฅ์„ ํ–ˆ๊ณ , ํ’€์ด 2๋Š” StringBuilder๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ ํ–ˆ๋‹ค. ์„ฑ๋Šฅ๋ฉด์—์„œ StringBuilder๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ๋น ๋ฅด๋‹ค. ํ’€์ด 1 import java.io.*;import java.util.*;public class Main{ static int[] arr; public static void main(String[] args) throws IOExc..

Algorithm/BOJ 2024.11.18

[Algorithm] ์ด์ง„ํƒ์ƒ‰ (Binary Search)

์ด์ง„ํƒ์ƒ‰ (Binary Search) ์ค‘์•™๊ฐ’ (mid) ์ง€์ •ํ•ด์„œ ๋น„๊ตํ•˜๋Š” ํƒ์ƒ‰์ด์ง„ํƒ์ƒ‰์„ ํ•˜๋ ค๋ฉด ์ •๋ ฌ์ด ๋œ ์ƒํƒœ์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ   ์ด์ง„ํƒ์ƒ‰์˜ ์‹œ๊ฐ„๋ณต์žก๋„ O(logn)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.์„ ํ˜•ํƒ์ƒ‰๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•จ์—๋”ฐ๋ผ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์Œ (๊ทธ๋ž˜ํ”„ ์ฐธ๊ณ )

Algorithm 2024.11.18

[Algorithm] ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ (BFS), ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ (DFS)

BFS (Breadth-First Search) ์‹œ์ž‘ ๋…ธ๋“œ์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ชจ๋“  ๋…ธ๋“œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ํƒ์ƒ‰์ฒซ๋ฒˆ์งธ floor๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ํ•ด๋‹น floor์˜ ๋ชจ๋“  ๋…ธ๋“œ ๋ฐฉ๋ฌธํ•  ๋•Œ๊นŒ์ง€ ์ˆ˜ํ‰ ์ด๋™ํ•œ ๋ฒˆ ๊ฑฐ์นœ ๋…ธ๋“œ ์ˆœ์„œ ์ €์žฅํ•œ ํ›„ ๋‹ค์‹œ ๊บผ๋‚ด๋Š” FIFO ์ฃผ๋กœ Queue๋กœ ๊ตฌํ˜„ DFS (Depth-First Search) ์‹œ์ž‘ ๋…ธ๋“œ์™€ ์ง์ ‘ ์—ฐ๊ด€๋œ ํ•˜์œ„ ๋…ธ๋“œ์˜ ๋๊นŒ์ง€ ๋ชจ๋‘ ํƒ์ƒ‰ํ•œ ํ›„ ๋‹ค์Œ ํ•˜์œ„ ๋…ธ๋“œ ํƒ์ƒ‰๊ฒฝ๋กœ ํ•˜๋‚˜์˜ ๋ชจ๋“  floor ํƒ์ƒ‰ํ•œ ๋’ค ๊ทธ ๋‹ค์Œ ๊ฒฝ๋กœ์˜ ๋ชจ๋“  floor ํƒ์ƒ‰ํ•˜๋Š” ์ˆœ์„œ์ฃผ๋กœ ์žฌ๊ท€ํ˜ธ์ถœ์ด๋‚˜ Stack ๋ช…์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„

Algorithm 2024.11.13