Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
69 lines (59 loc) · 1.88 KB

File metadata and controls

69 lines (59 loc) · 1.88 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.util.*;
public class Main {
public static int n;
// 연산을 수행하고자 하는 수 리스트
public static ArrayList<Integer> arr = new ArrayList<>();
// 더하기, 빼기, 곱하기, 나누기 연산자 개수
public static int add, sub, mul, divi;
// 최솟값과 최댓값 초기화
public static int minValue = (int) 1e9;
public static int maxValue = (int) -1e9;
// 깊이 우선 탐색 (DFS) 메서드
public static void dfs(int i, int now) {
// 모든 연산자를 다 사용한 경우, 최솟값과 최댓값 업데이트
if (i == n) {
minValue = Math.min(minValue, now);
maxValue = Math.max(maxValue, now);
}
else {
// 각 연산자에 대하여 재귀적으로 수행
if (add > 0) {
add -= 1;
dfs(i + 1, now + arr.get(i));
add += 1;
}
if (sub > 0) {
sub -= 1;
dfs(i + 1, now - arr.get(i));
sub += 1;
}
if (mul > 0) {
mul -= 1;
dfs(i + 1, now * arr.get(i));
mul += 1;
}
if (divi > 0) {
divi -= 1;
dfs(i + 1, now / arr.get(i));
divi += 1;
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for (int i = 0; i < n; i++) {
int x = sc.nextInt();
arr.add(x);
}
add = sc.nextInt();
sub = sc.nextInt();
mul = sc.nextInt();
divi = sc.nextInt();
// DFS 메서드 호출
dfs(1, arr.get(0));
// 최댓값과 최솟값 차례대로 출력
System.out.println(maxValue);
System.out.println(minValue);
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.