티스토리 뷰
출처 : https://www.hackerrank.com/challenges/bigger-is-greater/problem
#include <bits/stdc++.h>
using namespace std;
string biggerIsGreater(string w) {
string z; int n = w.size();
for (int i = n - 1; i >= 0; i--) {
if (i == 0) return "no answer";
if (w[i] == w[i - 1]) continue;
if (w[i] > w[i - 1]) {
char c; c = w[i]; w[i] = w[i - 1]; w[i - 1] = c;
return w;
}
else {
int j = i-1;
while (j>=0) {
if (w[j] >= w[j + 1]) {
if (j == 0) return "no answer";
j--; continue;
}
else {
char c = w[j];
z = w.substr(j + 1, n - (j + 1));
w.erase(j, n - j);
for (int m = 0; m < z.size(); m++) {
if (z[m] <= c) {
w += z[m - 1]; z[m - 1] = c;
for (int kk = z.size() - 1; kk >= 0; kk--) w += z[kk];
return w;
}
if (m == z.size() - 1) {
w += z[m]; z[m] = c;
for (int kk = z.size() - 1; kk >= 0; kk--) w += z[kk];
return w;
}
}
}
}
}
}
return w;
}
int main()
{
ofstream fout(getenv("OUTPUT_PATH"));
int T;
cin >> T;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
for (int T_itr = 0; T_itr < T; T_itr++) {
string w;
getline(cin, w);
string result = biggerIsGreater(w);
fout << result << "\n";
}
fout.close();
return 0;
}
'알고리즘 > 기타' 카테고리의 다른 글
[HackerRank] The Grid Search (0) | 2018.10.01 |
---|---|
[HackerRank] The Time in Words (0) | 2018.10.01 |
[HackerRank] Organizing Containers of Balls (0) | 2018.10.01 |
[HackerRank] Queen's Attack II (0) | 2018.09.30 |
[HackerRank] Encryption (0) | 2018.09.30 |
- Total
- Today
- Yesterday
- 17837
- 알고리즘
- DP
- SWEA
- 17143
- boj
- 2018 카카오 블라인드 채용
- 17144
- 새로운 게임 2
- 17140
- 연구소 3
- 17779
- hackerrank
- 입출력
- 17142
- SW Expert Academy
- 이차원 배열과 연산
- 팁
- 역량 테스트
- 미세먼지 안녕!
- scanf
- 2018 KAKAO BLIND RECRUITMENT
- 트렌드
- DFS
- 시간 복잡도
- 게리맨더링 2
- 백준
- 삼성
- string
- STL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |