728x90
๐ ๏ธ ๋ฌธ์ ๐ ๏ธ
๐๏ธ ์ค๋ช ๐๏ธ
๋ถ๋ฑํธ ๊ธฐํธ ์๋ค์ ์๋ก ๋ค๋ฅธ ํ ์๋ฆฟ์ ์ซ์๋ฅผ ๋ฃ์ด์ ๋ชจ๋ ๋ถ๋ฑํธ ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ ์์ด์ ๊ตฌํด์ผํ๋ค.
→ ์ด ์์ด์ ๊ตฌํ๊ธฐ ์ํด ๋ฐฑํธ๋ํน ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
๊ฐ ๋ถ๋ฑํธ์ ์๋ค์ ๋ค์ด๊ฐ๋ ์ซ์๋ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }์ค์์ ์ ํํด์ผ ํ๋ฉฐ ์ ํ๋ ์ซ์๋ ๋ชจ๋ ๋ฌ๋ผ์ผ ํ๋ค.
→ ๋ฐฑํธ๋ํน์ ํ ๋ ์ฌ์ฉํ ๋ฐฐ์ด์ ์์ ๊ฐ๊ณ ์ค๋ณต๋์ง ์๋ ๊ฐ๋ค๋ก ์ด๋ค์ง๋๋ก visited ๋ฐฐ์ด์ ์ฌ์ฉํ๋ค.
์ด์ ์ฌ๊ธฐ์ ๋ชจ๋ ๋ถ๋ฑํธ ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ ์์ด ์ค ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ ๊ฐ์ฅ ์์ ๊ฐ์ ๊ตฌํด์ผํ๋ค.
์ด๋ ์ฃผ์ํ ์ ์ ์ฒซ ์๋ฆฌ๊ฐ 0์ธ ๊ฒฝ์ฐ๋ ์ ์์ ํฌํจํด์ผํ๋ค. ์ฆ, 0123๊ณผ ๊ฐ์ด ์ถ๋ ฅํด์ผํ๋ค.
๋๋ ์ด๋ฅผ ์ฝ๊ฒ ๋ค๋ฃจ๊ธฐ ์ํด ๋ฌธ์์ด๋ก ๋ต์ ๊ตฌํ๊ธฐ๋ก ํ๋ค.
๊ทธ๋ฌ๋ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ๊ณ์ ๋น๊ตํด์ ๊ฐฑ์ ํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ค.
์๋ํ๋ฉด ๋ด๊ฐ ๊ตฌํํ ๋ฐฑํธ๋ํน ๋ฐฉ์์ผ๋ก ๊ตฌํ ์์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์๋ถํฐ ํฐ ์ ์์๋๋ก ๊ตฌํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ฝ {1, 2, 3}์ผ๋ก ์์ด์ ๊ตฌํ๋ค๊ณ ํ๋ฉด ์๋์ ๊ฐ์ด ๋์ฌ ๊ฒ์ด๋ค.
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
๊ทธ๋ฌ๋ฏ๋ก ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ ๊ฐ๋ค์ ๊ตฌํ๋ฉด
- 0๋ฒ ์ธ๋ฑ์ค์ ๊ฐ์ ์ต์๊ฐ
- ๋ง์ง๋ง ์ธ๋ฑ์ค์ ๊ฐ์ ์ต๋๊ฐ
์ด ๋ ๊ฒ์ด๋ค.
๐ ํ์ด ๐
package Baekjoon;
import java.io.*;
import java.util.ArrayList;
public class BrutueForce2529 {
static String[] sign;
static boolean[] visited;
static ArrayList<String> answers;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int k = Integer.parseInt(br.readLine());
sign = br.readLine().strip().split(" ");
visited = new boolean[10];
answers = new ArrayList<>();
dfs(0, k+1, new int[k+1]);
bw.write(answers.get(answers.size()-1)+"\n");
bw.write(answers.get(0));
bw.flush();
bw.close();
}
static void dfs(int count, int n, int[] result) {
if(count == n) {
if(isOk(result)) {
String t = "";
for(int i : result) {
t += i;
}
answers.add(t);
}
return;
}
for(int i = 0; i < 10; i++) {
if(!visited[i]) {
visited[i] = true;
result[count] = i;
dfs(count+1, n, result);
visited[i] = false;
}
}
}
static boolean isOk(int[] result) {
for(int i = 0; i < sign.length; i++) {
if(sign[i].equals("<")) {
if(result[i] > result[i+1]) {
return false;
}
}
else {
if(result[i] < result[i+1]) {
return false;
}
}
}
return true;
}
}
728x90
'ProgramSolve > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 2230๋ฒ - ์ ๊ณ ๋ฅด๊ธฐ (Java) (1) | 2024.03.22 |
---|---|
[BOJ] 13023๋ฒ - ABCDE (Java) (0) | 2024.03.01 |
[BOJ] 2477๋ฒ - ์ฐธ์ธ๋ฐญ (Java) (4) | 2024.02.19 |
[BOJ] 1068๋ฒ - ํธ๋ฆฌ (Java) (0) | 2024.02.01 |
[BOJ] 5397๋ฒ - ํค๋ก๊ฑฐ (Java) (2) | 2024.01.28 |