브루트포스 3

백준-14225번/부분수열의 합(java)

문제 이해문제수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오.예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 수 있다. 하지만, 4는 만들 수 없기 때문에 정답은 4이다.입력첫째 줄에 수열 S의 크기 N이 주어진다. (1 ≤ N ≤ 20)둘째 줄에는 수열 S가 주어진다. S를 이루고있는 수는 100,000보다 작거나 같은 자연수이다.출력첫째 줄에 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 출력한다. 주의할 점 : 수열 S를 이루고 있는 숫자가 100,000보다 작거나 같은 자연수, 수열의 크기는 최대 20 ==> 수열의 합으로 ..

알고리즘/백준 2024.08.02

백준-10819번/차이를 최대로 (java)

문제 접근 이 문제는 | A[0]-A[1] | + | A[1]-A[2] | ................ | A[N-2]-A[N-1] | 의 최대 값을 구해줘야 한다.따라서 모든 경우의 수에 대한 결과 값을 비교해 보면서 최대값을 찾는 브루트포스 알고리즘을 이용해야한다. 문제 풀이  dfs를 이용하여 배열의 순서에 대한 경우를 구해준다.public static void dfs(int count){ if(count==N){ result = Math.max(result,getResult()); return; } for(int i=0; i count가 N이 됐다는 것은 바뀐 순서의 배열인  selected배열이 다 찼다는 것을 의미 하므로 selected 배열에 대한 ..

알고리즘/백준 2024.07.06

백준-1476번/날짜 계산 (java)

문제 해결 E의 범위는 1~15S의 범위는 1~28M의 범위는 1~19 E S M을 모두 1부터 시작해서 입력 받은 값과 같을때까지 반복문을 돌려서 E S M과 일치하는 경우를 찾아야한다.(브루트포스 알고리즘) import java.util.Scanner;public class Problem1476 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int E; int S; int M; int year=1; int e=1; int s=1; int m=1; E=scanner.nextInt()..

알고리즘/백준 2024.06.26