Algorithm/BruteForce 3

BOJ#14391 종이 조각

BOJ#14391 종이 조각 * 문제https://www.acmicpc.net/problem/14391 * 풀이모든 경우의 수를 다 따져보아야 합니다.각 조각은 가로 또는 세로이므로 2^(N*M)의 경우의 수가 있습니다. 문제 풀이에 비트마스크를 이용하였습니다. 예를 들어, 3x3 종이에서 아래와 같은 경우라면 1 1 01 1 01 0 1 -> 1 1 0 1 1 0 1 0 1 으로 표현할 수 있습니다. 즉, 0 0 0 0 0 0 0 0 0 부터 1 1 1 1 1 1 1 1 1 까지모든 경우의 수는 아래와 같이 뽑아낼 수 있습니다. // 모든 경우를 다 해보기 : 2^NM for (int state = 0; state < (1

BOJ#6603 로또

BOJ#6603 로또 * 문제https://www.acmicpc.net/problem/6603 * 풀이주어진 숫자에서 6개의 숫자를 고르는 문제입니다. 간단히 조합을 돌려서 해결했습니다. 각각의 숫자에 대하여 뽑는 경우, 뽑지 않는 경우로 나누고잘뽑은 경우에만 출력을 했습니다. * 나의 코드https://github.com/stack07142/BOJ/blob/master/BOJ%236603/src/Main.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static voi..

BOJ#2309 일곱 난쟁이

BOJ#2309 일곱 난쟁이 * 문제https://www.acmicpc.net/problem/2309 * 풀이오름차순 정렬 후 순열 -> 문제 조건(합이 100)인 경우 return * 나의 코드 (Kotlin)https://github.com/stack07142/BOJ/blob/master/BOJ%232309/src/Main.kt import java.util.* fun main(args: Array) { val input = Scanner(System.`in`) var numArr = Array(9, { 0 }) for (i in 0..8) { numArr.set(i, input.nextInt()) } numArr.sort() permutaion(numArr, 0) for (i in 0..6) { p..