Hamutaro - Hamtaro 4

Algorithm/BOJ 23

[Silver III/JAVA] 16956 ๋Š‘๋Œ€์™€ ์–‘

https://www.acmicpc.net/problem/16956  ์กฐ๊ฑดํฌ๊ธฐ RxC์ธ ๋ชฉ์žฅ์–‘์€ ์ด๋™ํ•˜์ง€ ์•Š์Œ, ๋Š‘๋Œ€๋Š” ์ธ์ ‘ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ ๊ฐ€๋Šฅ์šธํƒ€๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์„œ ๋Š‘๋Œ€๊ฐ€ ์–‘์ด ์žˆ๋Š” ์นธ์œผ๋กœ ๋ชป๊ฐ€๋„๋ก ํ•ด์•ผ ํ•จ์šธํƒ€๋ฆฌ ๊ฐœ์ˆ˜ ์ œํ•œ ์—†์Œ ํ’€์ด ๊ณผ์ •์–‘ ์ฃผ๋ณ€์œผ๋กœ1. ๋Š‘๋Œ€-์–‘ ์ธ์ ‘ํ•œ๊ฐ€?2. ๋นˆ๊ณณ ์ฒดํฌํ•ด์„œ ์šธํƒ€๋ฆฌ ์„ค์น˜ ์—ฌ๋ถ€ ๊ฒฐ์ • ์ „์ฒด ์ฝ”๋“œimport java.io.*;import java.util.*;public class Main{ static int R, C; static char[][] map; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; public static void main(String[] args) throws ..

Algorithm/BOJ 2024.12.25

[Silver I/JAVA] 3187 ์–‘์น˜๊ธฐ ๊ฟ

https://www.acmicpc.net/problem/3187  ์กฐ๊ฑด์–‘ > ๋Š‘๋Œ€ -> ์–‘๋งŒ ๋‚จ์Œ , ๋Š‘๋Œ€ >= ์–‘ -> ๋Š‘๋Œ€๋งŒ ๋‚จ์Œ์šธํƒ€๋ฆฌ ๋ฐ”๊นฅ์—๋Š” ์–‘ ๋Š‘๋Œ€ ์—†์Œ๋นˆ๊ณต๊ฐ„ ์žˆ์Œ ํ•„์š”ํ•œ ๊ฒƒ๋ฐฉ๋ฌธ ์—ฌ๋ถ€ ์ฒดํฌ๋ฐฉํ–ฅ ์ด๋™ ๋ฐฐ์—ด dx, dy์šธํƒ€๋ฆฌ, ๋นˆ๊ณต๊ฐ„, ์–‘๋Š‘๋Œ€ ์ž…๋ ฅ ๋ฐ›์„ map ๋ฐฐ์—ด์ž…๋ ฅ์„ ๊ณต๋ฐฑ์—†์ด ๋ฐ›์Œ (charAt ์‚ฌ์šฉ) ํ’€์ด ๊ณผ์ •๋ฐฉ๋ฌธํ•œ ์  ์—†๊ณ , ์šธํƒ€๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ฉด BFS ํƒ์ƒ‰์ƒํ•˜์ขŒ์šฐ ๋ฐฉํ–ฅ ์ด๋™ํ•˜๋ฉด์„œ BFS ํƒ์ƒ‰์„ ํ•˜๊ณ  ๋Š‘๋Œ€์™€ ์–‘์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ๊ฐ ์นด์šดํŠธ๋งˆ์ง€๋ง‰์— ์ตœ์ข… ๋Š‘๋Œ€์™€ ์–‘์˜ ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ต์ขŒํ‘œ ํ˜•ํƒœ๋กœ ํ์— ํ•œ๋ฒˆ์— ๋‹ด์„ ์ˆ˜ ์žˆ์Œ ์ „์ฒด ์ฝ”๋“œimport java.io.*;import java.util.*;public class Main{ static int R,C; //๊ฐ€๋กœC,์„ธ๋กœR static char[][]..

Algorithm/BOJ 2024.12.19

[Silver I/JAVA] 2667 ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ

https://www.acmicpc.net/problem/2667  ํ’€์ด์ด์ „์— ํ’€์—ˆ๋˜ ์˜์—ญ๊ตฌํ•˜๊ธฐ์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋‹ค. (https://marginata.tistory.com/173)์˜์—ญ๊ตฌํ•˜๊ธฐ๊ฐ€ ์ƒ‰์น ๋˜์ง€ ์•Š์€ ์˜์—ญ์˜ ๋„“์ด๋ฅผ ๊ตฌํ•œ๊ฒƒ์ด๋ผ๋ฉด ๋ฐ˜๋Œ€๋กœ ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ๋Š” ์ง‘์ด ์žˆ๋Š”๊ณณ์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.์ฃผ์˜ํ•  ์ ์€ 0001010 ์ด๋Ÿฐ์‹์œผ๋กœ ๊ณต๋ฐฑ์—†์ด ์ž…๋ ฅ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— charAt()์„ ์ด์šฉํ•ด์„œ ํ•œ์ž๋ฆฌ์”ฉ charํ˜•์œผ๋กœ ์ถ”์ถœํ•œ ๋’ค์— ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์ „์ฒด ์ฝ”๋“œimport java.io.*;import java.util.*;public class Main{ static int[][] map; //์ง€๋„ static int[] dx = {1,-1,0,0}; static int[] dy = {0,0,1,..

Algorithm/BOJ 2024.12.13

[Silver I/JAVA] 2583 ์˜์—ญ ๊ตฌํ•˜๊ธฐ

https://www.acmicpc.net/problem/2583  ์กฐ๊ฑดM*N ๋ชจ๋ˆˆ์ข…์ด์— K๊ฐœ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ๊ทธ๋ฆผK๊ฐœ์˜ ์ง์‚ฌ๊ฐํ˜• ๋‚ด๋ถ€๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ตฌํ•˜๋Š” ๊ฒƒ๋ถ„๋ฆฌ๋œ ์˜์—ญ ๊ฐœ์ˆ˜, ๊ฐ ์˜์—ญ์˜ ๋„“์ด๋ฅผ ์ถœ๋ ฅ(์˜ค๋ฆ„์ฐจ์ˆœ)ํ•„์š”ํ•œ ๊ฒƒ๋„ค ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๋ฉด์„œ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ dx, dy ๋ฐฐ์—ด์˜์—ญ ๋„“์ด ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ArrayList (๋„“์ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋‚˜์˜ฌ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋ณ€์ ์ธ ArrayList ์‚ฌ์šฉ)์˜์—ญ ๋„“์ด๋ฅผ ์ €์žฅํ•  cntํ’€์ด์—ฌ๊ธฐ์„œ M์ด ๋†’์ด, N์ด ๋„ˆ๋น„์ด๋‹ค.x,y์ขŒํ‘œ๊ฐ’์€ ๋ฌธ์ œ์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฅด๋”๋ผ๋„ ๊ทธ๋Œ€๋กœ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋‚˜ํƒ€๋‚ด๋„ ๋„“์ด๋Š” ๊ฐ™๋‹ค.x, y ๋ฒ”์œ„๋งŒํผ ์˜์—ญ์„ 1๋กœ ์ฑ„์›Œ์คŒ๋นˆ ์˜์—ญ์„ DFS ํƒ์ƒ‰  ์ „์ฒด ์ฝ”๋“œimport java.io.*;import java.util.*;public class Main{..

Algorithm/BOJ 2024.12.12

[Silver II/JAVA] 2210 ์ˆซ์žํŒ ์ ํ”„

https://www.acmicpc.net/problem/2210  ์กฐ๊ฑด์ˆซ์žํŒ์˜ ํฌ๊ธฐ๋Š” 5*5์ธ์ ‘ํ•œ ๋„ค ๋ฐฉํ–ฅ์œผ๋กœ ๋‹ค์„ฏ๋ฒˆ ์ด๋™ (์œ„, ์•„๋ž˜, ์˜ค๋ฅธ์ชฝ, ์™ผ์ชฝ)ํ•œ ๋ฒˆ ๊ฑฐ์ณค๋˜ ์นธ์„ ๋‹ค์‹œ ๊ฑฐ์ณ๋„ ๋จ = ๋ฐฉ๋ฌธ ์ฒดํฌ ํ•„์š”์—†์Œ์„œ๋กœ ๋‹ค๋ฅธ ์—ฌ์„ฏ ์ž๋ฆฌ ์ˆ˜๋“ค์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐํ•„์š”ํ•œ ๊ฒƒ์ˆซ์žํŒ(grid) 2์ฐจ์› ๋ฐฐ์—ด๋ฐฉํ–ฅ ์ด๋™์„ ์œ„ํ•œ ๋ฐฐ์—ด dx, dy์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” Setํ’€์ดgrid 2์ฐจ์› ๋ฐฐ์—ด์— ๊ฐ’ ์ž…๋ ฅ๋ฐ›๊ธฐ๊ฐ๊ฐ์˜ ์ •์ (์ˆซ์žํŒ์˜ ์ˆซ์ž)์—์„œ DFS ํƒ์ƒ‰ํ•˜๊ธฐ์ธ์ ‘ํ•œ ๋„ค ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™int[] dx = {1, -1, 0, 0};int[] dy = {0, 0, 1, -1};/*์•„๋ž˜ : dx=1 dy=0 -> ํ–‰ ๋ฒˆํ˜ธ 1์ฆ๊ฐ€ x+1์œ„ : dx=-1 dy=0 -> ํ–‰ ๋ฒˆํ˜ธ 1๊ฐ์†Œ x-1์˜ค๋ฅธ์ชฝ : dx=0 dy=1 -> ์—ด ๋ฒˆํ˜ธ 1์ฆ๊ฐ€ y+..

Algorithm/BOJ 2024.12.12

[Silver IV/JAVA] 1388 ๋ฐ”๋‹ฅ์žฅ์‹

https://www.acmicpc.net/problem/1388  '-' ์ด๋Ÿฐ ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ค๋ฉด -> ์ด ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰, '|' ์ด๋Ÿฐ ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ค๋ฉด ↓ ์ด ๋ฐฉํ–ฅ์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.์—ฌ๊ธฐ์„œ ์–ด๋–ค ๊ฒฝ์šฐ์— ์ธ์ ‘๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์–ด๋–ค ๊ฒฝ์šฐ์— 2์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.* ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ- ์ •์ ์ด ๋งŽ๊ณ , ๊ฐ ์ •์ ์— ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์˜ ์ˆ˜๊ฐ€ ์ ์„ ๋•Œ- ์ •์  ์ค‘์‹ฌ์˜ ํƒ์ƒ‰- ์ž…๋ ฅ์ด ์ •์ -๊ฐ„์„  ๋ชฉ๋ก์œผ๋กœ ์ฃผ์–ด์งˆ ๋•Œ* 2์ฐจ์› ๋ฐฐ์—ด(๊ทธ๋ฆฌ๋“œ, ์ธ์ ‘ ํ–‰๋ ฌ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ- ์ •์  ๊ฐœ์ˆ˜์— ๋น„ํ•ด ๊ฐ„์„  ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์„ ๋•Œ ( ์˜ˆ : N x N ํ–‰๋ ฌ์—์„œ ๋ชจ๋“  ์ •์ ์ด ์—ฐ๊ฒฐ๋œ ์™„์ „ ๊ทธ๋ž˜ํ”„ )- ๊ทธ๋ž˜ํ”„๊ฐ€ 2D ๊ฒฉ์ž ํ˜•ํƒœ์ผ ๋•Œ ( ์˜ˆ : ๋ฏธ๋กœ์ฐพ๊ธฐ, ์„ฌ์˜ ๊ฐœ์ˆ˜, ๊ฒฝ๋กœ ํƒ์ƒ‰ ๋“ฑ )- ์ •์  ๊ฐ„ ์—ฐ๊ฒฐ ์—ฌ๋ถ€ ์ฒดํฌํ•  ๋•Œ ( ์˜ˆ : ๊ฒฝ..

Algorithm/BOJ 2024.12.10

[Silver II/JAVA] 1260 DFS์™€ BFS

https://www.acmicpc.net/problem/1260   ์ธ์ ‘๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ •์ ์˜ ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•œ๋‹ค. (์ž…๋ ฅ์˜ˆ์‹œ)1 2 ์ž…๋ ฅ -> graph = [ [ ], [2], [1], [ ] , [ ] ]1 3 ์ž…๋ ฅ -> graph = [ [ ], [2, 3], [1], [1] , [ ] ]1 4 ์ž…๋ ฅ - > graph = [ [ ], [2, 3, 4], [1], [1] , [1] ]2 4 ์ž…๋ ฅ - > graph = [ [ ], [2, 3, 4], [1, 4], [1] , [1, 2] ]3 4 ์ž…๋ ฅ -> graph = [ [ ], [2, 3, 4], [1, 4], [1, 4] , [1, 2, 3] ]์•ž์—์„œ ํ’€์—ˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—… 1,2์™€ ์œ ์‚ฌํ•จ.  ํ’€์ดimport java.io.*;import j..

Algorithm/BOJ 2024.12.10

[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

[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