반응형
1) 반복문
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int M = scan.nextInt();
int[] cards = new int[N];
for(int i = 0; i < N; i++) {
cards[i] = scan.nextInt();
}
int max = 0;
outline : for(int i = 0; i < N-2; i++) {
for(int j = i+1; j < N-1; j++) {
for(int k = j+1; k < N; k++) {
int sum = cards[i] + cards[j] + cards[k];
if(sum <= M) {
max = Math.max(max, sum);
}
if(max == M) {
break outline;
}
}
}
}
System.out.println(max);
}
}
2) 재귀호출
import java.util.Scanner;
public class Main {
private static int[] cards;
private static int N;
private static int M;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
N = scan.nextInt();
M = scan.nextInt();
cards = new int[N];
for(int i = 0; i < N; i++) {
cards[i] = scan.nextInt();
}
System.out.println(solution(0, 0, 0));
}
private static int solution(int sum, int idx, int cnt) {
if(cnt == 3) {
return sum > M ? 0 : sum;
}
if(idx >= N) {
return 0;
}
int max = 0;
for(int i = idx; i < N; i++) {
max = Math.max(max, solution(sum+cards[i], i+1, cnt+1));
}
return max;
}
}
반응형
'Algorithm' 카테고리의 다른 글
[카카오 블라인드 테스트] 추석 트래픽 - Java (0) | 2019.09.03 |
---|---|
[백준 1712번] 손익분기점 (0) | 2019.09.03 |
[백준 1398번] 동전 문제 - python (0) | 2019.05.11 |
[백준 6064번] 카잉 달력 - Python (0) | 2019.05.10 |
[백준 2839번] 설탕 배달 - Python (0) | 2019.05.09 |