백준
백준 2529 부등호(Java)
Park DJ
2023. 2. 19. 14:33
https://www.acmicpc.net/problem/2529
2529번: 부등호
두 종류의 부등호 기호 ‘<’와 ‘>’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시
www.acmicpc.net
Java 코드
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
static int n;
static char[] arr;
static boolean[] visit = new boolean[10];
static ArrayList<String> list = new ArrayList<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
arr = new char[n];
for(int i = 0; i < arr.length; i++) arr[i] = sc.next().charAt(0);
dfs(0, "");
Collections.sort(list);
System.out.println(list.get(list.size() - 1));
System.out.println(list.get(0));
}
public static void dfs(int index, String str) {
if(index == n + 1) {
list.add(str);
return;
}
for(int i = 0; i < 10; i++) {
if(visit[i] == false) {
if(index == 0 || check(arr[index - 1], str.charAt(index - 1) - '0', i)) {
visit[i] = true;
dfs(index + 1, str + i);
visit[i] = false;
}
}
}
}
public static boolean check(char c, int a, int b) {
if(c == '<') return a < b;
else return a > b;
}
}