뒤쪽의 큰값을 찾아 교환하며 탐색한 후 혹시 이미 내림차순 정렬이 완료됐는데 교환 횟수를 소모하지 못했을 경우 홀수면 맨뒤 두개 교환, 짝수면 그대로 반환시킨다. def dfs(idx, cnt): global answer if cnt == int(target): answer = max(int("".join(nums)), answer) return for now in range(idx, n): for max_idx in range(now + 1, n): if nums[now]