728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
아래 숫자 조작 문제의 심화 버전이라는 느낌을 받았다.
먼저 공부해보고 풀면 좋을 것 같다.
시간 제한은 20초이긴 하지만 지금 거의 10초 가까이 나오기 때문에
가지치기 하는 방법을 더 생각해보면 좋을 것 같다.
import java.util.Scanner;
class Solution {
public static int n, max;
public static char arr[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
max = Integer.MIN_VALUE;
String num = sc.next();
arr = num.toCharArray();
n = sc.nextInt();
dfs(0, 0);
System.out.println("#" + tc + " " + max);
}
}
public static void dfs(int pos, int cnt) {
if (cnt == n) {
int num = Integer.parseInt(new String(arr));
max = Math.max(num, max);
return;
}
for (int i = pos; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
swap(i, j);
dfs(i, cnt + 1);
swap(i, j);
}
}
}
public static void swap(int i, int j) {
char tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] 무한 사전 (D3) (0) | 2024.10.13 |
|---|---|
| [SW Expert Academy] 아바바바 (D3) (0) | 2024.10.13 |
| [SW Expert Academy] 숫자 조작 (D3) (0) | 2024.10.13 |
| [SW Expert Academy] 두 전구 (D3) (2) | 2024.10.13 |
| [SW Expert Academy] 홀수 피라미드 (D3) (1) | 2024.10.13 |