14888 : 연산자 끼워넣기

풀이

완전탐색 완전탐색 신나는 노래~

코드

#include <stdio.h>

int n, i, mn = 2e9, mx = -2e9, a[11], op[4];

void dfs(int c, int v) {
	if (c == n) {
		mn = mn < v ? mn : v;
		mx = mx > v ? mx : v;
		return;
	}
	if (op[0]) --op[0], dfs(c + 1, v + a[c]), ++op[0];
	if (op[1]) --op[1], dfs(c + 1, v - a[c]), ++op[1];
	if (op[2]) --op[2], dfs(c + 1, v * a[c]), ++op[2];
	if (op[3]) --op[3], dfs(c + 1, v / a[c]), ++op[3];
}

int main() {
	scanf("%d", &n);
	for (i = 0; i < n; i++) scanf("%d", &a[i]);
	for (i = 0; i < 4; i++) scanf("%d", &op[i]);

	dfs(1, a[0]);

	printf("%d\n%d\n", mx, mn);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-11-19 19:39

Read more posts by this author