728x90
300x250
연산자 우선순위 적용이 되지 않는다고 하니 단계단계마다 바로바로 연산을 수행하고 넘어갔다.
+를 선택했을 경우와 *를 선택했을 경우를 각각 계산한다.
import java.util.*;
public class Solution {
public static int T,N,ANS;
public static int[] num;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
T = sc.nextInt();
for (int tc = 1; tc <= T; tc++) {
ANS = 0;
N = sc.nextInt();
num = new int[N];
// 숫자 받기
for (int i = 0; i < N; i++) {
num[i]= sc.nextInt();
}
dfs(1,num[0]);
System.out.println("#"+tc+" "+ANS);
}
}
public static void dfs(int idx, int sum) {
//N개의 정수만큼 다 돌았는가?
if(idx==N) {
ANS = Math.max(sum,ANS);
return;
}
dfs(idx+1,sum+num[idx]); // + 연산자를 선택했을 경우
dfs(idx+1,sum*num[idx]); // * 연산자를 선택했을 경우
}
}
나도 방탈출 하러가구싶당
728x90
'알고리즘 > 조합 & 순열' 카테고리의 다른 글
백준 6603번: 로또 [재귀][백트래킹][조합] -Java (1) | 2024.01.03 |
---|---|
SWEA - 5215. 햄버거 다이어트 (0) | 2020.05.15 |
백준 14889번: 스타트와 링크 (0) | 2020.03.21 |
백준 14888번: 연산자 끼워넣기 (0) | 2020.03.10 |
백준 15655번: N과 M (6) (0) | 2020.03.04 |