250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(SWEA c++)1244. [S/W 문제해결 응용] 2일차 - 최대 상금 본문
728x90
반응형
완전탐색을 이용한 문제 풀이.
전역변수로 string형 s로 숫자를 입력 받고, int형 변수 change에 교환 횟수를 저장한다.
또한 ans를 통해 정답을 저장하면서 비교하도록 한다.
dfs를 통해 완전탐색을 진행한 후 교환횟수에 다다랐을 때 현재 값과 ans에 저장해 놓은 수를 비교하여 더 큰 수를 ans에 저장한다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int ans, change;
string s;
void dfs(int index, int current)
{
if(current == change)
{
ans = max(ans, stoi(s));
return;
}
for(int i = index; i < s.size() - 1; i++)
{
for(int j = i + 1; j < s.size(); j++)
{
swap(s[i], s[j]);
dfs(i, current + 1);
swap(s[i], s[j]);
}
}
}
int main(void)
{
int t;
cin >> t;
for(int i = 1; i <= t; i++)
{
cin >> s >> change;
ans = 0;
if(change > s.size())
change = s.size() - 1;
dfs(0, 0);
cout << "#" << i << " " << ans << endl;
}
return 0;
}
728x90
반응형
'SW Expert Academy' 카테고리의 다른 글
(SWEA c++)1491. 원재의 벽 꾸미기 (0) | 2020.10.16 |
---|---|
(SWEA c++)1289. 원재의 메모리 복구하기 (0) | 2020.10.15 |
(SWEA c++)1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 (0) | 2020.10.14 |
(SWEA c++)1234. [S/W 문제해결 기본] 10일차 - 비밀번호 (0) | 2020.10.14 |
(SWEA c++)1230. [S/W 문제해결 기본] 8일차 - 암호문3 (0) | 2020.10.13 |