์ ์ฒด ๊ธ ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ [ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ https://programmers.co.kr/learn/courses/30/lessons/42839 ๋ฌธ์ ์ ๊ทผ String์ผ๋ก ๋ค์ด์ค๋ ์ซ์๋ค๋ก ๊ฐ๋ฅํ ๋ชจ๋ ์ซ์ ์กฐํฉ์ ๋ง๋ค๊ณ ์ด ์ซ์์ค์ธ์ ์์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์์๋ฅผ ์ฐพ๊ธฐ์ํด์ Math.sqrt(n)์ ์ด์ฉํด์ ๋ฐ๋ณต๋ฌธ ํ์๋ฅผ ์ค์ด๊ณ , dfs๋ฅผ ์ด์ฉํด์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์ซ์๊ฐ ๋๊ฐ ์ด์์์ผ๋ฉด ์ค๋ณต๋๋ ์ซ์๋ค์ด ๋ํ๋๊ฒ ๋์ด์ HashSet์ ์ด์ฉํด์ ์ค๋ณต ๊ฒฝ์ฐ์ ์๋ฅผ ์ ๊ฑฐํ์๋ค. Code import java.util.HashSet; class Solution { char[] nums; boolean[] visited; HashSet hs = new HashSet(); public int solu.. ๋๋ณด๊ธฐ [Algorithm/Java][๋ฐฑ์ค] 9020 ๊ณจ๋๋ฐํ์ ์ถ์ธก [BOJ] 9020 ๊ณจ๋๋ฐํ์ ์ถ์ธก https://www.acmicpc.net/problem/9020 ๋ฌธ์ ์ ๊ทผ ์ง์ n์ ๊ฐ์ฅ ์ฐจ์ด๊ฐ ์์ ๋ ์์์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๋ฌธ์ ์ด๋ค. ์ฒ์์๋ n๊น์ง ์์๋ฅผ ๊ตฌํ๊ณ ๊ทธ ์์ค์์ ํฉ์ ์ํ ๋ ค๊ณ ํ๋๋ฐ, ์ฝ๋๊ฐ ๋๋ฌด ๋ณต์กํด์ง๊ณ ๋ด๊ฐ ์ผ๋๋ฐ๋ ๋ด๊ฐ ๋ชป์์๋ณด๋ ์ง๊ฒฝ์ด์๋ค... ๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ตญ์ ๋งํ๋ค ๊ทธ๋์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ด์ฉํด์ 10000๊น์ง์ ์์๋ฅผ ๋ชจ๋ ๊ตฌํ๋ค. ๊ทธ ๋ค์์ ๊ฐ์ฅ ์ฐจ์ด๊ฐ ์์ ๋ ์์์ ํฉ์ ๊ตฌํ๊ธฐ ์ํด์ num1์ n/2๋ถํฐ 1์ฉ ๊ฐ์ํ๊ณ num2๋ n- num1์ผ๋ก ํด์ num1,num2 ๋ชจ๋ ์์์ธ ์ฒซ๋ฒ์งธ ๊ฒฝ์ฐ๊ฐ ๋ต์ด์๋ค. ์์ฝํ์๋ฉด ์๋์ ๊ฐ๋ค. 1.์๋ผํ ์ค๋ค์ค์ ์ฒด๋ก 10000๊น์ง ์์๋ฅผ ๋ชจ๋ ๊ตฌํ๋ค. 2.1์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก n/2๋ถ.. ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋ฐ๋จน๊ธฐ [ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋ฐ๋จน๊ธฐ https://programmers.co.kr/learn/courses/30/lessons/12913 ๋ฌธ์ ์ ๊ทผ ์ฒ์์ ์ ๊ทผํ ๋ dfs๋ก ํ์ด์ผ ๋ ๊น? dp๋ก ํ์ด์ผ ๋ ๊น? ๊ณ ๋ฏผ์ด ๋์๋๋ฐ dfs๋ก ์ฝ๋ ์ง๋ ค๊ณ ํ๋๊น ๊ทธ๋ฅ ๋ฐ๋ก ๋งํ์ dp๋ก ์๊ฐํด๋ดค๋ค. ์ผ๋จ ์ ๊ทผ ๋ฐฉ์์ ํ์ฌ ๋ด๊ฐ ๋ฐ์ ๋ ๊ณผ ๊ฐ์ ์ด์ ์ ์ธํ๊ณ ๋ฐ๋ก ์ ํ์์ ์ต๊ณ ์ ์๋ฅผ ๊ฐ์ง ๊ณณ์ ๋ฐ์์ผ ์ต๊ณ ์ ์๋ฅผ ์ ์งํ๋ฉด์ ๋ ์ ๋ฐ์๊ฐ์ ์๋ค. ๊ทธ๋์ dp๋ฐฐ์ด์ ๊ทธ ์์น์ ํด๋นํ๋ ์ต๊ณ ์ ์๋ฅผ ์ ์ฅํ๊ณ , ๋ง์ง๋ง ํ์ค์์ ์ต๊ณ ์ ์๊ฐ ์ต์ข ๋ต์ด ๋๋ค. Code class Solution { int solution(int[][] land) { int answer = 0; int[][] dp = new int[land.lengt.. ๋๋ณด๊ธฐ [Algorithm/Java][๋ฐฑ์ค] 6603 ๋ก๋ [๋ฐฑ์ค] 6603 ๋ก๋ https://www.acmicpc.net/problem/6603 ๋ฌธ์ ์ ๊ทผ ๋ฐฑํธ๋ํน ๋ฐฉ์์ผ๋ก ์ ๊ทผํ์ฌ ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํ DFS๋ฅผ ์ด์ฉํ์ฌ ํ์๋ค. ๋จผ์ ์ ๋ ฅ์ ๋ฐ์ ์ซ์๋ฅผ nums์ ์ ์ฅํ๊ณ ์ฌ์ฉํ๋์ง๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ nums์ ๊ฐ์ ํฌ๊ธฐ์ boolean ๋ฐฐ์ด๋ก visited๋ฅผ ๋ง๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก 6๊ฐ์ ๋ก๋ ๋ฒํธ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋ฐฐ์ด lotto๋ฅผ ๋ง๋ค์๋ค. ๊ฒฐ๊ณผ๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ๋์์ผ ํด์ lotto[cnt-1]๊ณผ nums[i]๋ฅผ ๋น๊ตํด์ ํ์์ ๊ฑด๋๋ฐ๋๋ก ๋ง๋ค์๋ค. Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BOJ.. ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฆฐํฐ [ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฆฐํฐ https://programmers.co.kr/learn/courses/30/lessons/42587 ๋ฌธ์ ์ ๊ทผ ์ธ์ ๋๊ธฐ์ด์์ ์ฐ์ ์์๊ฐ ๋์ ๊ฒ ๋ถํฐ ์ธ์๋ฅผ ํด์ผํ๊ณ , location์ ์๋ ์์ ์ด ๋ช๋ฒ์งธ๋ก ์ธ์๋๋์ง๋ฅผ ๊ตฌํด์ผํ๋ค. ๊ทธ๋์ task ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ฐ์ ์์์ ์ฒ์ ์ฃผ์ด์ง ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๊ณ ์ด๋ฅผ ํ์ ์ ์ฅ์ ํ๊ณ , ๊ฐ์ฅ ํฐ ์ฐ์ ์์๋ฅผ ํํํ๊ธฐ์ํด์ ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด์ ์ต๋ ํ์ ์ด์ฉํ๋ค. ๊ทธ๋์ ํด๋น location์ ์๋ ์์ ์ด ์ธ์๋ ๋๊น์ง while๋ฌธ์ ๋๋ฆฌ๋๋ก ํ๋ค. Code import java.util.PriorityQueue; import java.util.Queue; import java.util.Collections; import java.uti.. ๋๋ณด๊ธฐ [Algorithm/Java][๋ฐฑ์ค] 14502 ์ฐ๊ตฌ์ [๋ฐฑ์ค] 14502 ์ฐ๊ตฌ์ https://www.acmicpc.net/problem/14502 ๋ฌธ์ ์ ๊ทผ ๋ชจ๋ ๋งต์ ๋๋ฉด์ ๋ฒฝ์ 3๊ฐ ์ธ์ธ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ํ์ํด์ผํ๋ค. ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํด์ ๋ฒฝ์ ์ธ์ธ ์ ์๋ ์ง์ ์์ ๋ฒฝ์ ์ธ์ฐ๋ ๊ฒฝ์ฐ์ ์ธ์ฐ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ํ์ํ๋ค. ํฌ๊ฒ๋ณด๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค, 1.๋ฒฝ์ 3๊ฐ ์ธ์ด๋ค 2.๋ฐ์ด๋ฌ์ค๋ฅผ ํผ๋จ๋ ค ๋ณธ๋ค. 3.์์ ์์ญ์ ์ผ๋ค. 4.์ด๋ฒ ๊ฒฝ์ฐ๊ฐ ์ต๋ ์์ ์์ญ์ธ์ง ํ์ธํ๋ค. 5.1~4๋ฅผ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ํ๋ค. Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import jav.. ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ [ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ https://programmers.co.kr/learn/courses/30/lessons/42626 ๋ฌธ์ ์ ๊ทผ ์ฃผ์ด์ง ์์ ๋ฐฐ์ด์์ ์ค์ฝ๋น์ง์๊ฐ ๊ฐ์ฅ ๋ฎ์ ๋ ์์์ ์์ด์ ๊ธฐ์ค์ธ K๋ฅผ ๋๊ฒจ์ผ ํ๋ค. ๋ ์์์ ์์ ๊ฒฐ๊ณผ๋ ๋ค์ ์์ ๋ฐฐ์ด์ ์ถ๊ฐํด์ ์ฐ์ฐ์ ํด์ผํ๊ธฐ ๋๋ฌธ์, ๊ณ์ํด์ ์ค๋ฆ์ฐจ์์ ์ ์งํ ์ ์๋ ์ต์ํ์ ์ฌ์ฉํ๋ค. Code import java.util.PriorityQueue; class Solution { public int solution(int[] scoville, int K) { PriorityQueue minHeap = new PriorityQueue(); for(int food: scoville) minHeap.add(food); int answer =.. ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ [ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ https://programmers.co.kr/learn/courses/30/lessons/42586 ๋ฌธ์ ์ ๊ทผ ๊ฐ ๊ธฐ๋ฅ๋ง๋ค ๋จ์ ์ผ์๋ฅผ ๊ณ์ฐํด์ฃผ๊ณ , ์ ๊ธฐ๋ฅ์ ๋จ์ ์ผ์๋ณด๋ค ์์ ์ผ์๋ฅผ ๊ฐ์ง ๊ธฐ๋ฅ๋ง๋ค count๋ฅผ ์ฆ๊ฐ์์ผ์ ํ ๋ฐฐํฌ ๋จ๊ณ์ ํฌํจ๋๋๋ก ์ ๊ทผํ๋ค. Code import java.util.ArrayList; class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] remainDays = new int[progresses.length]; //๊ฐ ๊ธฐ๋ฅ์ ์๋ฃํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์ผ ์ ์ฅ for(int i = 0; i ๋๋ณด๊ธฐ ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 13 ๋ค์