저번에 풀었는데, 런타임에러나서 질문을 올렸었다.
근데 리턴값 안줘서 그런것같다고 그랬다.... 그래서 리턴값 모두 설정해줬더니 됐다.....
그리고 다른사람들이 풀어놓은거 보니깐. 굉장히 sort함수 써서 잘했던데 나는 몰랐다.
나는 멍청이다. 소팅함수를 구현했다고 보면된다......
#include<iostream>
#include<string>
using namespace std;
string arr[20001];
void initialize(int input) {
for (int i = 0; i < input; i++) {
arr[i] = "";
}
}
void push_back(int start, int end) {
for (int i = end-1; i >= start; i--) {
arr[i + 1] = arr[i];
}
}
bool insert_sort(string input, int num) {
for (int i = 0; i < num; i++) {
if (arr[i] == input) {
return false;
}
if (arr[i].length() > input.length()) { //뒤로 미뤄줘야한다.
push_back(i, num);
arr[i] = input;
return true;
}
else if (arr[i].length() == input.length()) { //길이가 같다면, 사전순으로 비교
for (int j = 0; j < input.length(); j++) {
if (int(arr[i][j]) > int(input[j])) { //입력이 앞설때
push_back(i, num);
arr[i] = input;
return true;
}
else if (arr[i][j] < input[j]) {
break;
}
}
}
}
arr[num] = input;
return true;
}
int main(void) {
cin.tie(NULL);
cout.tie(NULL);
ios_base :: sync_with_stdio(false);
int T;
string str;
cin >> T;
initialize(T);
cin >> str;
arr[0] = str;
for(int i=1;i<T;i++){
cin >> str;
if (insert_sort(str, i) == false) {
i--;
T--;
continue;
}
}
for (int j = 0; j < T; j++) {
cout << arr[j] << "\n";
}
return 0;
}
'Development > BOJ' 카테고리의 다른 글
[BOJ] 백준 15683번 : 감시 C++ : 아주정은 (0) | 2020.10.17 |
---|---|
[BOJ] 백준 19236번 : 청소년 상어 C++ : 아주정은 (0) | 2020.10.16 |
[BOJ] 백준 6588번 : 골드바흐의 추측 C++ : 아주정은 (1) | 2020.04.27 |
[BOJ] 백준 1182번 : 부분수열의 합 C++ : 아주정은 (0) | 2020.04.16 |
[BOJ] 백준 2504번 : 괄호의 값 C++ : 아주정은 (0) | 2020.02.26 |