๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€

[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 ๋”๋ณด๊ธฐ