반응형
SMALL
문제
https://www.acmicpc.net/problem/14888
문제풀이
기초 구현 문제이다. 사실 이러한 형식으로 나오는 문제 중에서는 단순 구현 보다는 DP 문제가 더 많은데 난이도가 쉬운 문제로 출제가 되면서 단순 구현으로도 풀 수 있는 난이도의 문제로 출제 되었다. 해당 문제는 순서대로 읽어보고 차례대로 구현하면 별 이상 없이 바로 맞출 수 있는 문제이다.
소스코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static int N, min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
public static int[] arr, operator = new int[4];
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < 4; i++) {
operator[i] = Integer.parseInt(st.nextToken());
}
process(new int[]{0, 0, 0, 0}, new ArrayList<Integer>());
System.out.println(max);
System.out.println(min);
}
public static void process(int[] op, ArrayList<Integer> list) {
if(op[0] == operator[0] && op[1] == operator[1] && op[2] == operator[2] && op[3] == operator[3]) {
int value = calc(list);
min = Math.min(min, value);
max = Math.max(max, value);
return;
}
for(int i = 0; i < 4; i++) {
if(op[i] >= operator[i]) continue;
list.add(i);
op[i]++;
process(op, list);
op[i]--;
list.remove(list.size()-1);
}
}
public static int calc(ArrayList<Integer> list) {
int res = arr[0];
for(int i = 1; i < N; i++) {
int tmp = arr[i];
switch(list.get(i-1)) {
case 0:
res += tmp;
break;
case 1:
res -= tmp;
break;
case 2:
res *= tmp;
break;
case 3:
res /= tmp;
break;
default :
break;
}
}
return res;
}
}
반응형
LIST
'문제풀이 > 백준' 카테고리의 다른 글
⭐ [백준] 7569번: 토마토 (Java/자바) (2) | 2024.08.01 |
---|---|
[백준] 1916번: 최소비용 구하기 (Java/자바) (0) | 2024.07.30 |
[백준] 11726번: 2xn 타일링 (Java/자바) (0) | 2024.07.28 |
⭐ [백준] 11053번: 가장 긴 증가하는 부분 수열 (Java/자바) (0) | 2024.07.24 |
[백준] 9663 N-Queen (Java/자바) (2) | 2024.07.23 |
댓글