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

๐Ÿ”Ž Algorithm21

[๋ฐฑ์ค€] 15686. ์น˜ํ‚จ ๋ฐฐ๋‹ฌ ํ’€์ด ์–ผํ• ๋ณด๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„๋ณด์ด์ง€๋งŒ ๊ฒฐ๊ตญ ๋”ฐ์ ธ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” ์น˜ํ‚จ์ง‘์˜ ๊ฐœ์ˆ˜ ์ค‘์— M๊ฐœ์˜ ์กฐํ•ฉ์„ ๋ฝ‘๋Š” ๊ฒฝ์šฐ๋‹ค. ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์ง‘๊ณผ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ณ  ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€๋‹ค. Next Permutation ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ ์กฐํ•ฉ์„ ์ƒ์„ฑํ–ˆ๊ณ  ์ด์ „ ์ตœ์†Œ๊ฐ’์„ ๋„˜์–ด์„œ๋Š” ๊ฒฝ์šฐ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์„ ์ค‘์ง€ํ•˜๊ณ  ๋ฆฌํ„ด๋˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; public class Solution15686 { static class Pair { int x = 0; int y =.. 2021. 2. 19.
[๊ฐœ๋… ์ •๋ฆฌ] ์ˆœ์—ด, ์กฐํ•ฉ, ๋ถ€๋ถ„์ง‘ํ•ฉ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์™„์ „ํƒ์ƒ‰ ๊ธฐ๋ฒ•์—์„œ ์ˆœ์—ด๊ณผ ์กฐํ•ฉ ๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ถ„์ง‘ํ•ฉ์— ๋Œ€ํ•œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์—ด ์ˆœ์—ด์€ N๊ฐœ์˜ ์›์†Œ ์ค‘์—์„œ R๊ฐœ์˜ ์›์†Œ๋ฅผ ํ†ตํ•ด ์ˆœ์„œ๋ฅผ ๊ฐ€์ง„ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ˆœ์—ด์€ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ด๋ฒˆ ์ˆœ์„œ์˜ ์›์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•œ๋ฐ, ์ด ๊ณผ์ •์€ boolean ๋ฐฐ์—ด์„ ํ†ตํ•ด ์ฒดํฌํ•˜๊ฑฐ๋‚˜ ๋น„ํŠธ ๋งˆ์Šคํ‚น์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Boolean ๋ฐฐ์—ด ์‚ฌ์šฉ permutationByBoolean(0); static void permutationByBoolean(int cnt) { if (cnt == N) { printPermutation(); return; } for (int i.. 2021. 2. 19.
[๋ฐฑ์ค€] 9251. LCS ๋ฌธ์ œ ํ’€์ด ํ•˜๋ฃจ์ข…์ผ ์ด ๋ฌธ์ œ๋งŒ ๋ถ™๋“ค๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ฒ˜์Œ ์‹œ๋„ํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ ์ผ์ฐจ์› ๋ฐฐ์—ด์„ ํ†ตํ•ด ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์—ฌ๋Ÿฌ๋ฒˆ ๋“ฑ์žฅํ•  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ์ž˜๋ชป๋œ ์ตœ๋Œ€๊ฐ’์„ ์–ป๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int[][] cache; public static void main(String[] args) thro.. 2021. 2. 10.
[๋ฐฑ์ค€] 11053. ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์œผ๋กœ ์ ‘๊ทผํ–ˆ๋˜ ๋ฐฉ๋ฒ•์€ index๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ™์€ ์ˆ˜๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ ๊ฐฑ์‹ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ผ๊ด€๋œ ๊ทœ์น™์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๊ณ  ์ด๋ฅผ ์ปค๋ฒ„ํ•˜๊ธฐ ์œ„ํ•ด index๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ๊ฐ’์„ ํ†ตํ•ด ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ํ•ด๋‹น ๊ฐ’ A๋ฅผ ์ฐพ๊ณ  1 ~ A-1๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธธ์ด + 1๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ €์žฅํ–ˆ๋‹ค. import java.util.Scanner; public class Solution11053 { static Scanner sc = new Scanner(System.in); static int[] cache = new int[1001]; public static void main(String[] args) { int N = sc.nextIn.. 2021. 2. 10.
[๋ฐฑ์ค€] 9663. N-Queens ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์—๋Š” ์™„์ „ํƒ์ƒ‰์œผ๋กœ ์ ‘๊ทผํ–ˆ์—ˆ์ง€๋งŒ ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ์‹คํŒจํ•˜์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ–ˆ๊ณ  ๋ชจ๋“  ํ–‰/์—ด์ด ์•„๋‹Œ ์–ด์ฐจํ”ผ ํ•œ ํ–‰์—๋Š” ํ•˜๋‚˜์˜ Queen๋งŒ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์ด์šฉํ•ด ์žฌ๊ท€ํ•จ์ˆ˜์˜ ๊นŠ์ด๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. import java.util.Scanner; public class NQueens { static Scanner sc = new Scanner(System.in); static int result = 0; static int N = 0; static boolean[][] check; static int[] dx = {0, 0, -1, 1, 1 ,1 , -1, -1}; static int[] dy = {-1, 1, 0 ,0, -1, 1 , 1, -1}; public sta.. 2021. 2. 5.
[๋ฐฑ์ค€] 2493. ํƒ‘ ๋ฌธ์ œ ํ’€์ด ์ฒ˜์Œ์—๋Š” ๋ฐฐ์—ด์˜ ๋์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•ด์„œ ์ž์‹ ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€์˜ ๋ชจ๋“  ์š”์†Œ๋“ค์„ ๊ฐ™์ด ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜ ๋ฐฉํ–ฅ์˜ ํ™”์‚ดํ‘œ ๋ชจ์–‘(ex. 5 2 1 3 4) ๊ฒฝ์šฐ๋ฅผ ์ปค๋ฒ„ํ•˜์ง€ ๋ชปํ•ด์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ์ตœ์ข…์ ์œผ๋กœ๋Š” ์Šคํƒ ๋‘๊ฐœ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•˜๋‚˜์˜ ์Šคํƒ(A)์€ ์ž…๋ ฅ ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€ ์žˆ๊ณ  ๋‚˜๋จธ์ง€(B)๋Š” ๊บผ๋‚ธ ๊ฐ’์„ ์ €์žฅํ–ˆ๋‹ค. ๊บผ๋‚ธ ๊ฐ’์„ B ์Šคํƒ์— ๋„ฃ๊ธฐ ์ „์— B์Šคํƒ์˜ top์ด ๋” ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ๊บผ๋‚ธ ๊ฐ’์˜ ์ธ๋ฑ์Šค๊ฐ€ top์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋œ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” Map์„ ํ†ตํ•ด์„œ ์ดˆ๊ธฐ ์ž…๋ ฅ์‹œ ํ•ด๋‹น ๊ฐ’์„ key๋กœ ์ธ๋ฑ์Šค๋ฅผ value๋กœ ์ €์žฅํ•ด์„œ O(1)๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. Map์„ ํ†ตํ•œ ๊ตฌํ˜„ import java.io.BufferedReader; import .. 2021. 2. 4.