๐ก์์ด(Permutation) : ์๋ก ๋ค๋ฅธ n๊ฐ์ ์์์์ r๊ฐ๋ฅผ ์ค๋ณต์์ด ์์์ ์๊ด์๊ฒ ์ ํํ๋ ํน์ ๋์ดํ๋ ๊ฒ์ ์์ด(permutation)์ด๋ผ๊ณ ํ๋ค. (๋๋ฌด์ํค) //nPr public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); R = sc.nextInt(); input = new int[N]; numbers = new int[R]; isSelected = new boolean[N]; // ๋ฐฉ๋ฌธ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๊ธฐ ์ํจ for (int i = 0; i < N; i++) { input[i] = sc.nextInt(); } permutation(0); } private static v..
๐ก ๋ฌธ์ 1182๋ฒ: ๋ถ๋ถ์์ด์ ํฉ ๋ฌธ์ N๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์์ ๋, ํฌ๊ธฐ๊ฐ ์์์ธ ๋ถ๋ถ์์ด ์ค์์ ๊ทธ ์์ด์ ์์๋ฅผ ๋ค ๋ํ ๊ฐ์ด S๊ฐ ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์ ์์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ N๊ณผ ์ ์ S๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) ๋์งธ ์ค์ N๊ฐ์ ์ ์๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์์ ์ ๋๊ฐ์ 100,000์ ๋์ง ์๋๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ํฉ์ด S๊ฐ ๋๋ ๋ถ๋ถ์์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค. ์์ ์ ๋ ฅ 1 5 0 -7 -3 -2 5 8์์ ์ถ๋ ฅ 1 1 ๐ก ์ ๊ทผ ๋ฐฉ๋ฒ S๊ฐ 0์ผ๋๋ sum=0์ ์ด๊ธฐํ์ ๊ฒน์น๋ฏ๋ก ์ ๊ฒฝ์จ์ค์ผํ๋ค ๋ถ๋ถ์งํฉ์ผ๋ก ํ๋ฉด ์ฝ๊ฒ ํ ์ ์์ ๐คฆโ๏ธ My Solution package ์์ด์กฐ..
๐ก ๋ฌธ์ 2003๋ฒ: ์๋ค์ ํฉ 2 ๋ฌธ์ N๊ฐ์ ์๋ก ๋ ์์ด A[1], A[2], …, A[N] ์ด ์๋ค. ์ด ์์ด์ i๋ฒ์งธ ์๋ถํฐ j๋ฒ์งธ ์๊น์ง์ ํฉ A[i] + A[i+1] + … + A[j-1] + A[j]๊ฐ M์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ A[1], A[2], …, A[N]์ด ๊ณต๋ฐฑ์ผ๋ก ๋ถ๋ฆฌ๋์ด ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ A[x]๋ 30,000์ ๋์ง ์๋ ์์ฐ์์ด๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ์์ ์ ๋ ฅ 1 4 2 1 1 1 1์์ ์ถ๋ ฅ 1 3 ๐ก ์ ๊ทผ ๋ฐฉ๋ฒ ๐คฆโ๏ธ My Solution import java.io.BufferedReader; import ..
๐ก ๋ฌธ์ 10974๋ฒ: ๋ชจ๋ ์์ด ๋ฌธ์ N์ด ์ฃผ์ด์ก์ ๋, 1๋ถํฐ N๊น์ง์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ ์ฌ์ ์์ผ๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ N(1 ≤ N ≤ 8)์ด ์ฃผ์ด์ง๋ค. ์ถ๋ ฅ ์ฒซ์งธ ์ค๋ถํฐ N!๊ฐ์ ์ค์ ๊ฑธ์ณ์ ๋ชจ๋ ์์ด์ ์ฌ์ ์์ผ๋ก ์ถ๋ ฅํ๋ค. ์์ ์ ๋ ฅ 1 3์์ ์ถ๋ ฅ 1 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 ๐ก ์ ๊ทผ ๋ฐฉ๋ฒ ๊ทธ๋ฅ ์์ด ๐คฆโ๏ธ My Solution package ์์ด์กฐํฉ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BJ_10974 { static int N; static boolean check[..