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

๋ฐ˜์‘ํ˜•

Algorithm

[Algorithm/Java][๋ฐฑ์ค€] 1806๋ฒˆ ๋ถ€๋ถ„ํ•ฉ [BOJ] 1806๋ฒˆ ๋ถ€๋ถ„ํ•ฉ https://www.acmicpc.net/problem/1806 ๋ฌธ์ œ ์ ‘๊ทผ ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. deque์™€ ์ด๋ถ„ ํƒ์ƒ‰์„ ์ด์šฉํ•ด์„œ๋„ ํ’€ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๋ถ„๋ฅ˜๊ฐ€ ํˆฌ ํฌ์ธํ„ฐ๋ผ์„œ ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. start์™€ end์ธ ๋‘ ๊ฐœ์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  sum์ด t(๋ชฉํ‘œ ๊ฐ’)๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด end๋ฅผ +1ํ•ด์„œ ํ•œ๊ฐœ๋ฅผ ๋” ๋”ํ•˜๋„๋ก ํ•˜๊ณ , sum์ด t(๋ชฉํ‘œ ๊ฐ’)๋ณด๋‹ค ํฌ๋ฉด start๋ฅผ +1 ํ•ด์„œ ํ•ฉ์—์„œ ํ•œ๊ฐœ๋ฅผ ๋นผ์„œ ๋ชฉํ‘œ ๊ฐ’์— ์ ‘๊ทผํ•˜๋„๋ก ํ•œ๋‹ค. ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด O(N)์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. Code import java.io.BufferedReader; import java.io.IOException; import java.io.. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 1700๋ฒˆ ๋ฉ€ํ‹ฐํƒญ ์Šค์ผ€์ค„๋ง [BOJ] 1700๋ฒˆ ๋ฉ€ํ‹ฐํƒญ ์Šค์ผ€์ค„๋ง https://www.acmicpc.net/problem/1700 ๋ฌธ์ œ ์ ‘๊ทผ ์˜ˆ์ „์— ์šด์˜์ฒด์ œ ์‹œ๊ฐ„์— ๋ฐฐ์› ๋˜ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋น„์Šทํ•ด์„œ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ฉ€ํ‹ฐํƒญ์— ์ž๋ฆฌ๊ฐ€ ์žˆ๊ฑฐ๋‚˜, ์ด๋ฏธ ๊ฝ‚ํ˜€์žˆ์„ ๋•Œ๋Š” ๊ณ ๋ คํ•  ๊ฒƒ ์—†์ด ๊ทธ๋ƒฅ ๊ฝ‚๊ฑฐ๋‚˜ ๋„˜์–ด๊ฐ€๋ฉด ๋˜์ง€๋งŒ ์ž๋ฆฌ๊ฐ€ ์—†์„๋•Œ ๊ณ ๋ คํ•ด์•ผ ๋  ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ •๋ฆฌํ•ด ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฉ€ํ‹ฐํƒญ์— ์ž๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ ๋ฉ€ํ‹ฐํƒญ์— ๊ฝ‚ํ˜€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐํƒญ์— ์ž๋ฆฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ 3.1. ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ „์ž๊ธฐ๊ธฐ๊ฐ€ ๊ฝ‚ํ˜€ ์žˆ๋Š” ๊ฒฝ์šฐ 3.2. ๋ชจ๋“  ์ „์ž๊ธฐ๊ธฐ๊ฐ€ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ „์ž๊ธฐ๊ธฐ์ธ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ „์ž๊ธฐ๊ธฐ๊ฐ€ ๊ฝ‚ํ˜€ ์žˆ์œผ๋ฉด ๊ทธ ์ „์ž๊ธฐ๊ธฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ „์ž๊ธฐ๊ธฐ๋ฅผ ๊ฝ‚์œผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. ๋ชจ๋“  ์ „์ž๊ธฐ๊ธฐ๊ฐ€ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ „์ž๊ธฐ๊ธฐ์ธ ๊ฒฝ์šฐ ์šฐ์„ ์ˆœ์œ„๋ฅผ.. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 1062๋ฒˆ ๊ฐ€๋ฅด์นจ [BOJ] 1062๋ฒˆ ๊ฐ€๋ฅด์นจ https://www.acmicpc.net/problem/1062 ๋ฌธ์ œ ์ ‘๊ทผ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ด์šฉํ•ด์„œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•ด๋ณด๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“  ๋‹จ์–ด๊ฐ€ ํฌํ•จํ•˜๋Š” anta, tica ์— ํฌํ•จ๋œ 5๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ํ•„์ˆ˜ ๋‹จ์–ด๋กœ ํฌํ•จ์‹œํ‚ค๊ณ , ๊ณต๋ฐฑ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์–ด์„œ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๋‹จ์–ด์˜ ๊ธธ์ด๋ฅผ ์ค„์˜€๊ณ , ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด๊ฐ€ 5๊ฐœ ๋ณด๋‹ค ์ ์„๋•Œ 0, 26๊ฐœ ์ผ ๋•Œ ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ n์„ ์ถœ๋ ฅํ–ˆ๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ•  ๋•Œ๋„ a~z๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•™์Šตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ ์ธ๋ฑ์Šค๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ถ”๊ฐ€ํ•ด์„œ ์ด๋ฏธ ์ง€๋‚˜๊ฐ„ ๊ณณ์€ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๋„๋ก ํ–ˆ๋‹ค. Code import java.io.BufferedReader; import java.io.IOException; import jav.. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 2504๋ฒˆ ๊ด„ํ˜ธ์˜ ๊ฐ’ [BOJ] 2504๋ฒˆ ๊ด„ํ˜ธ์˜ ๊ฐ’ https://www.acmicpc.net/problem/2504 ๋ฌธ์ œ ์ ‘๊ทผ Stack์„ ์ด์šฉํ•ด์„œ ์—ด๋ฆฐ ๊ด„ํ˜ธ๋ฅผ ์ €์žฅํ•˜๊ณ , ๊ด„ํ˜ธ๊ฐ€ ๋‹ซํž ๋•Œ X๊ฐ’์„ ๋‹ค์‹œ ์Šคํƒ์— ์ €์žฅํ•œ๋‹ค. ๊ด„ํ˜ธ ์†์— ์ˆซ์ž๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ์ˆซ์ž๋“ค์„ ๋‹ค ๋”ํ•ด์„œ ํ•ด๋‹น ๊ด„ํ˜ธ ๊ฐ’์„ ๊ณฑํ•ด์ฃผ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šคํƒ์„ Character ์ž๋ฃŒํ˜•์œผ๋กœ ํ•˜๋ฉด ๊ด„ํ˜ธ์™€ ์ˆซ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, String์œผ๋กœ ํ•ด์„œ ์ด ๊ฒฝ์šฐ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๊ฐ€ ์•„๋‹Œ๊ฒƒ์„ ๊ฒ€์‚ฌํ•˜๊ธฐ๊ฐ€ ๊นŒ๋‹ค๋กœ์› ๋‹ค... Code import java.util.Scanner; import java.util.Stack; public class BOJ2504 { public static void main(String[] args) { Scanner sc .. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 1987๋ฒˆ ์•ŒํŒŒ๋ฒณ [BOJ] 1987๋ฒˆ ์•ŒํŒŒ๋ฒณ https://www.acmicpc.net/problem/1987 ๋ฌธ์ œ ์ ‘๊ทผ ๊ฐ€๋กœ R, ์„ธ๋กœ C๋กœ ๋œ ๋ณด๋“œ์— ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ด ์ ํ˜€์žˆ๊ณ , ๊ฐ€์žฅ ์™ผ์ชฝ ์œ„๋ถ€ํ„ฐ ์•ŒํŒŒ๋ฒณ ๋‹น ํ•œ๋ฒˆ์”ฉ๋งŒ ๋ฐฉ๋ฌธํ•ด์„œ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฒ˜์Œ์—๋Š” ์•„๋ฌด์ƒ๊ฐ ์—†์ด bfs๋กœ ํ–ˆ๋‹ค๊ฐ€ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ๊นŒ dfs๊ฐ€ ๋” ๋งž๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋ฐฉํ–ฅ์„ ํ‹€์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ณด๋“œ์— ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•˜๋Š” isVisited์™€ ์•ŒํŒŒ๋ฒณ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•˜๋Š” alphabetVisited๋ฅผ ์‚ฌ์šฉํ•˜๋ ค ํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐํ•ด๋ณด๋‹ˆ๊นŒ ํ•œ๋ฒˆ ๋ฐฉ๋ฌธํ•œ ์•ŒํŒŒ๋ฒณ์€ ๋ฐฉ๋ฌธํ•˜์ง€ ๋ชปํ•˜๋‹ˆ๊นŒ ๋ณด๋“œ์— ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ๊ฒฝ๋กœ๋ฅผ String์œผ๋กœ ๊ณ„์† ์ถ”๊ฐ€ํ•ด๊ฐ€๋ฉด์„œ ํ•˜๋ฉด ์•ŒํŒŒ๋ฒณ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋„ ๋”ฐ๋กœ ์ €์žฅํ•˜์ง€ ์•Š์•„๋„ ๋  ๊ฒƒ ๊ฐ™์•„์„œ dfs์— ๊ฐ€๋ ค๋Š” x,y์™€ ์ง€๊ธˆ.. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 2467๋ฒˆ ์šฉ์•ก [BOJ] 2467๋ฒˆ ์šฉ์•ก https://www.acmicpc.net/problem/2467 ๋ฌธ์ œ ์ ‘๊ทผ ์šฉ์•ก์˜ ๊ฐ’๋“ค์ด ์ •๋ ฌ์ด ๋˜์–ด์žˆ์–ด์„œ left์™€ right๋ฅผ ์ด์šฉํ•ด์„œ ์ด๋ถ„ ํƒ์ƒ‰ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค. ์ ˆ๋Œ€๊ฐ’์„ ์ด์šฉํ•ด์„œ ์ ˆ๋Œ€๊ฐ’์ด ๋‚ฎ์€ ๊ฒฝ์šฐ๋ฅผ ์ €์žฅํ•ด๋†“๊ณ , sum์ด 0์ผ ๋•Œ breakํ•˜๊ณ , sum์ด 0๋ณด๋‹ค ์ž‘์„ ๋•Œ๋Š” left ์ธ๋ฑ์Šค๋ฅผ +1 ํ•ด์ฃผ๊ณ , sum์ด 0๋ณด๋‹ค ํฌ๋ฉด right ์ธ๋ฑ์Šค๋ฅผ -1ํ•ด์„œ 0์— ๊ฐ€๊นŒ์šด ๊ฐ’์„ ์ฐพ์•˜๋‹ค. Code import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BOJ2467 { public s.. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 12852๋ฒˆ 1๋กœ ๋งŒ๋“ค๊ธฐ 2 [BOJ] 12852๋ฒˆ 1๋กœ ๋งŒ๋“ค๊ธฐ 2 https://www.acmicpc.net/problem/12852 ์ ‘๊ทผ ๋ฐฉ๋ฒ• ์ฒ˜์Œ์—๋Š” dfs ๋ฐฉ๋ฒ•์œผ๋กœ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ ‘๊ทผ์„ ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚˜์„œ dp ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ๋ฐ”๊พธ์—ˆ๋‹ค. dp[i]๋ฅผ ์šฐ์„  dp[i-1] +1๋กœ ํ•˜๊ณ , 2๋กœ ๋‚˜๋ˆ„์–ด์งˆ ๋•Œ์™€, 3์œผ๋กœ ๋‚˜๋ˆ„์–ด์งˆ ๋•Œ dp[i/2] + 1๊ณผ dp[i/3] + 1์„ ๋น„๊ตํ•ด์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ dp[i]๋กœ ๊ฒฐ์ •ํ•˜์˜€๋‹ค. i๋Š” 2๋ถ€ํ„ฐ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์„œ dp[n]์ผ ๋•Œ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜์˜€๊ณ  ๋งŒ๋“œ๋Š” ์ ˆ์ฐจ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ„์— ํ–ˆ๋˜ ๋ฐฉ์‹์„ ๊ฑฐ๊พธ๋กœ ํ•ด์„œ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค. Code import java.util.Scanner; public class BOJ12852 { public static void main(String[].. ๋”๋ณด๊ธฐ
[Algorithm/Java][ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹จ์ฒด์‚ฌ์ง„ ์ฐ๊ธฐ [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹จ์ฒด์‚ฌ์ง„ ์ฐ๊ธฐ https://programmers.co.kr/learn/courses/30/lessons/1835 ์ ‘๊ทผ ๋ฐฉ๋ฒ• ์ฒ˜์Œ์— ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ์นด์นด์˜ค ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ์— ๋“ค์–ด๊ฐ€์„œ ํ•ด์„ค์„ ๋ดค๋Š”๋ฐ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋‹ค ์„ธ์›Œ๋ณด๊ณ  ๊ทธ ์ค‘์— ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์˜€๋‹ค. dfs๋ฅผ ์ด์šฉํ•ด์„œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ค„์„ ์„ธ์›Œ๋ณด๊ณ  check ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•ด์„œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์…Œ๋‹ค. Code import java.util.HashMap; class Solution { public int answer = 0; public boolean[] visited = new boolean[8]; String[] friends = {"A", "C", "F", "J", "M", "N", "R.. ๋”๋ณด๊ธฐ