[백준] 2529번 부등호 - Java, 자바
난이도
실버 2
문제
https://www.acmicpc.net/problem/2529
코드
package 백트래킹;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class BO2529 {
static int k; // 부등호문자의 개수(2<=k<=9)
static boolean[] visit = new boolean[10]; //0-9 숫자 방문여부(중복숫자불가하므로)
static char[] signs;
static ArrayList<String> list = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
k = Integer.parseInt(br.readLine());
signs = new char[k];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < k; i++) {
signs[i] = st.nextToken().charAt(0);
}
back("", 0);
System.out.println(list.get(list.size() - 1));
System.out.println(list.get(0));
}
static void back(String num, int depth) {
if (depth == k + 1) {
// min = Math.min(Integer.parseInt(num), min);
// max = Math.max(Integer.parseInt(num), min); 021->21로출력
list.add(num);
return;
}
for (int i = 0; i <= 9; i++) {
if (depth == 0 || !visit[i] && compare(num.charAt(num.length() - 1) - '0', i, signs[depth - 1])) {
//처음건 비교할게없으므로 통과 || 방문안한숫자 && 비교
visit[i] = true;
back(num + i, depth + 1);
visit[i] = false;
}
}
}
static boolean compare(int a, int b, int c) {
if (c == '<') return a < b;
else return a > b;
}
}
Author And Source
이 문제에 관하여([백준] 2529번 부등호 - Java, 자바), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimmjieun/백준-2529번-부등호-Java-자바저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)