๋ฐฑํธ๋ํน
[BOJ_4574] ์ค๋๋ฏธ๋ ธ์ฟ (java)
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/4574 4574๋ฒ: ์ค๋๋ฏธ๋ ธ์ฟ ์ ๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ํ ์คํธ ์ผ์ด์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ์ฑ์์ ธ ์๋ ๋๋ฏธ๋ ธ์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (10 ≤ N ≤ 35) ๋ค์ N๊ฐ ์ค์๋ ๋๋ฏธ๋ ธ ํ๋๋ฅผ ๋ํ๋ด๋ U LU V LV๊ฐ www.acmicpc.net ๋ฌธ์ ํ์ด ๐จ๐ป๐ป ํต์ฌ ์คํฌ ๐จ๐ป๐ป ์ฌ๊ท, ๋ธ๋ฃจํธํฌ์ค, ๋ฐฑํธ๋ํน ์ค๋๋ฏธ๋ ธ์ฟ ๋ ์ค๋์ฟ + ๋๋ฏธ๋ ธ๋ฅผ ์๋ฏธํ๋ ๊ฒ์์ด๋ค. ์ค๋์ฟ ์ ๊ท์น์ ์ง์ผ์ฃผ๋ฉฐ, ๋๋ฏธ๋ ธ(2๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฐ)์ ๋์์ฃผ์ด ์ค๋์ฟ ๋ฅผ ํ์ด์ฃผ๋ ๋ฌธ์ ์ด๋ค. ๋๋ฏธ๋ ธ๋ $(1,2), (1,3) (1,4) ... (7,8) (7,9) (8,9)$ ๊น์ง 1๋ถํฐ 9๊น์ง์ ๋ชจ๋ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ทธ๋ฐ๋ฐ $(1..
๋ธ๋ฃจํธํฌ์ค(2) ์ฌ๊ท
์ฌ๊ท๋ฅผ ์ฐ๋ฉด ์ฌ๊ท๋ฅผ ์ฐ๋ฉด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ธํ๋๋ก ๋ง๋ค ์ ์๋ค. ์ฌ๊ท๋ฅผ ์จ์ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ธํ๋ ๊ฒฝ์ฐ๋ ๋๊ฐ์ง์ด๋ค. 1. ์์๊ฐ ์๋ ๊ฒฝ์ฐ(P) n๊ฐ์ ์๋ฅผ ๋์ดํ๋ ๋ฐฉ๋ฒ์ ์์ด๋ค.(์ค๋ณต๊ฐ๋ฅ) -> O(n!) /** * index -> ํ์ฌ ์๋ฅผ ๋๋ ์์น * arr -> ํ์ธํ๋ ค๊ณ ๋ง๋๋ ๋ฐฐ์ด */ public void recursive1(int index, int[] arr){ if(index == arr.length){ //์ข ๋ฃ ์กฐ๊ฑด } for(int i = 1; i O(2^n) /** * index -> ํ์ฌ ์๋ฅผ ๋๋ ์์น * arr -> ํ์ธํ๋ ค๊ณ ๋ง๋๋ ๋ฐฐ์ด */ public void recursive2(int cnt, int[] arr, int value, int n){ if(ind..