밍의 기록들😉

[문제] 부등호 2529번 본문

자료구조, 알고리즘/문제풀이

[문제] 부등호 2529번

민쓰 2018. 9. 5. 23:20

문제



https://www.acmicpc.net/problem/2529



소스코드

import java.util.Scanner;

public class Inequel2 {
	private static int n;
	private static String[] op;
	private static int[] a = new int[10];
	private static boolean[] check = new boolean[10];
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		op = sc.nextLine().split(" ");
		
		descCompare(0, 9);
		print();
		check = new boolean[10];
		ascCompare(0, 0);
		print();
	}
	private static void descCompare(int idx, int x) {
		if(idx >= n+1) return;
		for(int i=9; i>=9-n; i--){
			if(check[i] == false){
				if(idx != 0){
					if(op[idx-1].equals("<") && a[idx-1]>i){
						check[x] = false;
						return;
					}
				}
				a[idx] = i;
				check[i] = true;
				descCompare(idx+1, i);
			}
		}	
	}
	private static void ascCompare(int idx, int x) {
		if(idx >= n+1) return;
		for(int i=0; i<=n; i++){
			if(check[i] == false){
				if(idx != 0){
					if(op[idx-1].equals(">") && a[idx-1]<i){
						check[x] = false;
						return;
					}
				}
				a[idx] = i;
				check[i] = true;
				ascCompare(idx+1, i);
			}
		}	
	}
	private static void print() {
		for(int i=0; i<=n; i++){
			System.out.print(a[i]);
		}	
		System.out.println();
	}
}

풀이


-

'자료구조, 알고리즘 > 문제풀이' 카테고리의 다른 글

[문제] 미로찾기  (0) 2018.09.14
[문제] 깊이우선탐색과 너비우선탐색  (0) 2018.09.09
[문제] 웜바이러스 2606번  (0) 2018.09.05
[문제] 이진 패턴  (0) 2018.09.04
[문제] 자연수의 분할  (4) 2018.09.04
Comments