Algorithm ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [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 ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์นด์นด์คํ๋ ์ฆ ์ปฌ๋ฌ๋ง๋ถ [ํ๋ก๊ทธ๋๋จธ์ค] ์นด์นด์คํ๋ ์ฆ ์ปฌ๋ฌ๋ง๋ถ https://programmers.co.kr/learn/courses/30/lessons/1829 ๋ฌธ์ ์ ๊ทผ BFS๋ฅผ ์ด์ฉํด์ ๊ฐ์ ์์์ ๊ฐ์ง ์ธ์ ํ ๋ ธ๋๋ค์ ํ์ํ๊ณ ์์ญ๊ณผ ์์ญ์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ขํ๊ฐ๊ณผ ํด๋น ์ขํ์ ์์ ์ ๋ณด๋ฅผ ๊ฐ์ง XYํด๋์ค๋ฅผ ๋ง๋ค์ด์ Queue๋ฅผ ์ด์ฉํ ๋ ํธํ๋๋ก ํ์๋ค. Code import java.util.LinkedList; import java.util.Queue; class Solution { class XY { int x; int y; int value; // ํด๋น ์ขํ์ ๊ทธ๋ฆผ XY(){}; XY(int x, int y, int value){ this.x = x; this.y = y; this.value = value.. ๋๋ณด๊ธฐ [Algorithm/Java][๋ฐฑ์ค] 1676๋ฒ ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ [๋ฐฑ์ค] 1676๋ฒ ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ https://www.acmicpc.net/problem/1676 ๋ฌธ์ ์ ๊ทผ ์ฒ์์๋ ๊ทธ๋ฅ ํฉํ ๋ฆฌ์ผ ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํด์ ๋จ์ํ๊ฒ 0์ ๊ฐ์๋ฅผ ์ ๋ ค๊ณ ํ๋ค. ๊ทผ๋ฐ ์ ๋ ฅ์ ๋ฒ์๊ฐ 500๊น์ง ์๊ณ 500!๋ long์ผ๋ก๋ ์ปค๋ฒ๊ฐ ๋์ง ์๋ ๋ฒ์์๋ค. ๊ทธ๋์ ๊ฒ์์ ํด๋ณธ ๊ฒฐ๊ณผ!@! ๋งจ ๋ค์์ ์ฐ์๋๋ 0์ ๊ฐ์๋ฅผ ์ผ๋ค๋ ๊ฒ์ 2 * 5 ์ ๊ฐฏ์๊ฐ ๋ช๊ฐ๊ฐ ์๋์ง์ ๊ฐ๋ค!!๋ผ๋ ์์ฒญ๋ ์ฌ์ค์ ์๊ฒ ๋์ด์ ์ด๋ฅผ ์ฝ๋๋ก ๊ตฌํํ์๋ค....๋๋ฐ... Code import java.util.Scanner; public class BOJ1676 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); .. ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ [ํ๋ก๊ทธ๋๋จธ์ค] 2022 KAKAO BLIND RECRUITMENT ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ https://programmers.co.kr/learn/courses/30/lessons/92334 ๋ฌธ์ ์ ๊ทผ ์ผ๋จ ๋ฌธ์ ๊ฐ ๊ณ ๋ คํด์ผ ํ ๊ฒ๋ค์ด ๋ง์์ ์ฒ์์๋ ์ ๊ณ ๋นํ ํ์, ์ ๊ณ ํ ์ฌ๋, ์๋ฆผ ๋ฉ์ผ์ ๋ฐ์ ํ์๋ฅผ ๋ชจ๋ ๋ฐ๋ก map์ ์ด์ฉํด์ 3๊ฐ์ map์ ๋ง๋ค์ด์ ์ ๊ทผํ๋๋ฐ ๋๋ฌด ๋ณต์กํด์ ๊ทธ๋ฅ 3๊ฐ์ ์ ๋ณด๋ฅผ ๊ฐ์ง User ํด๋์ค๋ฅผ ๋ง๋ค๊ฒ ๋์๋ค. ์ด๋ ๊ฒ ํ๋๊น ๋ ์๊ฐํ๊ธฐ ์ฌ์ ๊ณ ๋ด๊ฐ ๋๋ผ๊ธฐ์๋ ๋ณต์กํจ์ด ๋ง์ด ์ค์ด๋ค์๋ค. Code import java.util.HashMap; import java.util.HashSet; class Solution { class User { HashSet report; // ์ ๊ณ ํ .. ๋๋ณด๊ธฐ [Algorithm/Java][LeetCode] 121. Best Time to Buy and Sell Stock [LeetCode] 121. Best Time to Buy and Sell Stock https://leetcode.com/problems/best-time-to-buy-and-sell-stock ๋ฌธ์ ์ ๊ทผ ๊ฐ์ฅ ์ธ๊ฒ ์ฌ์ ๊ฐ์ฅ ๋น์ธ๊ฒ ์์ ๋ ์ป๋ ์ด์ค์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ์ด์ฉํด์ dp๋ฐฐ์ด์ ์ง๊ธ๊น์ง ์ค์์ ๊ฐ์ฅ ์ผ ๊ฐ์ ์ ์ฅํ๊ณ ํ์ฌ ๋ ์ง์ ๊ฐ๊ฒฉ prices[i]์ ๊ทธ ์ ๋ ๊น์ง ๊ฐ์ฅ ์ผ ๊ฐ๊ฒฉ dp[i-1]์ ๋นผ์ ์ด์ค์ ๊ตฌํ ๋ค์ max์ ๋น๊ตํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ ๊ฐ๊ฒฉ์ด dp[i-1]๋ณด๋ค ์ธ๋ค๋ฉด dp[i]๋ฅผ ์ค๋ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ณ ์๋๋ผ๋ฉด dp[i-1]์ ๋ฃ์ด์ค๋ค. Code class Solution { public int maxProfit(int[] prices) { int max.. ๋๋ณด๊ธฐ [Algorithm/Java][LeetCode] 101. Symmetric Tree [LeetCode] 101. Symmetric Tree https://leetcode.com/problems/symmetric-tree ๋ฌธ์ ์ ๊ทผ ๋ฃจํธ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๊ฐ ๋์นญ์ธ์ง๋ฅผ ํ์ ํ๋ ๋ฌธ์ ์ด๋ค. BFS์ฒ๋ผ ํ๋ฅผ ์ด์ฉํด์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ํ๋ ค๊ณ ํ์ผ๋, ๋ญ๊ฐ ์ ์๋์ ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํ๋ค. ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ๋ ธ๋๋ฅผ ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํด ๋น๊ต ๋์ฌ ์ ์๋ ๊ฒฝ์ฐ์ ์ 4๊ฐ์ง 1. ์์ชฝ ๋ ธ๋๊ฐ ๋ชจ๋ null์ธ ๊ฒฝ์ฐ(์๋ฌด ๋ฌธ์ ์์ด ๋๊น์ง ํธ๋ฆฌ๋ฅผ ์ํ ํ์ผ๋ฏ๋ก true) 2. ํ์ชฝ ๋ ธ๋๋ง null์ธ ๊ฒฝ์ฐ(๋น๋์นญ์ด๋ฏ๋ก false) 3. ์์ชฝ ๋ ธ๋์ ๊ฐ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ(๋น๋์นญ์ด๋ฏ๋ก false) 4. ์์ชฝ ๋ ธ๋์ ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ(์ง๊ธ๊น์ง๋ ๋์นญ์ด๋ฏ๋ก ์ถ๊ฐ์ ์ธ ํธ๋ฆฌ ์ํ - ์ฌ๊ท ํจ์.. ๋๋ณด๊ธฐ [Algorithm/Java][๋ฐฑ์ค] 2805๋ฒ ๋๋ฌด ์๋ฅด๊ธฐ [๋ฐฑ์ค] 2805๋ฒ ๋๋ฌด ์๋ฅด๊ธฐ https://www.acmicpc.net/problem/2805 ๋ฌธ์ ์ ๊ทผ ์ฒ์์๋ ๊ฐ์ด ์์กํ์ ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ๊ฐ ์ด๋ถ ํ์์ด๋ผ๊ณ ์จ์ ธ์์ด์, ์๋ ์ ๋ฐฐ์ด ๊ธฐ์ต์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค. left, right, mid๋ฅผ ์ด์ฉํด์ ๊ฐ์ ์ฐพ์๋ค. ๋ง์ฝ ๋ฑ ๋จ์ด์ง๋ ๊ฐ์ด ์์ ๊ฒฝ์ฐ, ์ ์ด๋ m์ ๋๊ฒจ์ผํ๊ธฐ ๋๋ฌธ์ right๊ฐ์ returnํ๋๋ก ํ๋ค. Code import java.util.Arrays; import java.util.Scanner; public class BOJ2805 { static int cutHeight(int[] trees, int m){ Arrays.sort(trees); int left = 0; int right = trees[trees.length.. ๋๋ณด๊ธฐ ์ด์ 1 2 3 4 5 6 7 8 9 ๋ค์