문제링크 : www.acmicpc.net/problem/1248
import java.io.*;
import java.util.*;
public class Main {
public static int N;
public static int ans[];
public static boolean visited [][];
public static String query;
public static int len;
public static char str[][];
public static boolean check(int idx){
int sum = 0;
for(int i=idx;i>=0;i--){
sum+=ans[i];
if(str[i][idx]=='+' && sum<=0) return false;
if(str[i][idx]=='0' && sum!=0) return false;
if(str[i][idx]=='-' && sum>=0) return false;
}
return true;
}
public static void dfs(int idx){
if(idx==N){
for(int i=0;i<N;i++){
System.out.print(ans[i] + " ");
}
System.exit(0);
}
for(int i=-10;i<=10;i++){
ans[idx] = i;
if(check(idx)){
dfs(idx+1);
}
}
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
ans = new int[N];
visited = new boolean[11][22]; //N번째 원소, 21개의 수
query = br.readLine();
len = N*(N-1)/2;
str = new char[N][N];
int temp = 0;
for(int i=0;i<N;i++){
for(int j=i;j<N;j++){
str[i][j] = query.charAt(temp++);
}
}
dfs(0);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1948 임계경로 (0) | 2021.03.24 |
---|---|
[백준] 13424 비밀 모임 [JAVA] (0) | 2021.03.22 |
[백준] 2023 신기한 소수 (0) | 2021.02.24 |
[백준] 2169 로봇 조종하기[JAVA] (5) | 2021.02.24 |
[백준] 14267 회사 문화1 (0) | 2021.02.15 |