반응형


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 |