백준 2529 부등호 JAVA

sundays·2023년 5월 23일
0

문제

부등호

풀이

부등호가 최대 9개 밖에 없기 때문에 완탐으로도 시간내에 할 수 있을 것 같다

  1. 부등호의 방향이 맞는 부분을 리턴해준다
private static boolean possible(int i, int j, String k) {
	if (k.equals("<")) {
    	return i < j;	
    } else {
    	return i > j;
    }
}
  1. 완전 탐색으로 1-10까지 전부 돌면서 1번 조건식에 맞는 숫자를 넣어줄 수 있다.
private static boolean dfs(int depth, String s) {
	// n + 1 번에 종료 된다. 
	if (depth == n + 1) {
    	// 가장 먼저 작은 숫자가 셋팅이 된다
    	if (min.isEmpty()) {
        	min = s;
        } else {
        	max = s;
        }
    }
    
    for (int i = 0; i < 10; i++) {
    	// 중복방지 하고 0번째 인덱스에 맞는 문자를 등록하게 한다
    	if (!visited[i] && (depth == 0 || 
        	possible(s.charAt(depth - 1), i + '0', s.charAt(depth - 1))) {
        	visited[i] = true;
            dfs(depth + 1, s + i);
            visited[i] = false;
        }
    }
}

전체 코드

전체 코드

profile
develop life

0개의 댓글

관련 채용 정보