반응형
예제 입력 1 복사
baekjoon
예제 출력 1 복사
aekjoon baekjoon ekjoon joon kjoon n on oon
#include <iostream>
#include <string>
using namespace std;
int compare(string a, string b)
{
if (a > b) return 1;
else return 0;
}
void ft_swap(string* a, string* b)
{
string temp;
temp = *a;
*a = *b;
*b = temp;
}
int main(void)
{
string str;
cin >> str;
string temp = "";
int len = str.size();
string arr[1001];
for (int i = 0; i < len; i++)
{
temp = str.substr(i, sizeof(str) - i);
arr[i] = temp;
}
for (int i = 0; i < len - 1; i++)
{
for (int j = i + 1; j < len; j++)
{
if (compare(arr[i], arr[j]))
ft_swap(&arr[i], &arr[j]);
}
}
for (int i = 0; i < len; i++)
cout << arr[i] << "\n";
}
처음 코드
이때 j = i + 1로 고치고 좋아했는데 틀림
아무리봐도 틀린곳을 몰랐는데
어떤 코드가 sizeof(str)대신 len 으로 쓴 거보고 고침
#include <iostream>
#include <string>
using namespace std;
int compare(string a, string b)
{
if (a > b) return 1;
else return 0;
}
void ft_swap(string* a, string* b)
{
string temp;
temp = *a;
*a = *b;
*b = temp;
}
int main(void)
{
string str;
cin >> str;
string temp = "";
int len = str.size();
string arr[1001];
for (int i = 0; i < len; i++)
{
temp = str.substr(i, len - i);
arr[i] = temp;
}
for (int i = 0; i < len - 1; i++)
{
for (int j = i + 1; j < len; j++)
{
if (compare(arr[i], arr[j]))
ft_swap(&arr[i], &arr[j]);
}
}
for (int i = 0; i < len; i++)
cout << arr[i] << "\n";
}
그러니까 성공 정답!
sizeof(str)은 진짜 확보한 메모리를 돌려주나봄 len이어야 지금 문자열 따라 바뀌는 듯
이걸로 자료구조 끝!
반응형
'C언어' 카테고리의 다른 글
백준 1676번 팩토리얼 0의 개수 (0) | 2020.08.19 |
---|---|
백준 10872번 팩토리얼 : while문을 이용한 팩토리얼 계산 (0) | 2020.08.19 |
백준 1929 소수구하기 : prime배열에 저장하고 구하기! (0) | 2020.08.19 |
백준 2609번 / 1934번 최소공배수 최대공약수 문제 (0) | 2020.08.19 |
백준 10824번 네 수 : stoi 부터 stoull까지 문자열과 숫자 변환 (0) | 2020.08.18 |
백준 11655번 Rot 13 getline함수 쓰기 (0) | 2020.08.18 |
백준 10820번 문자열분석 : fgets 함수 ! (2) | 2020.08.18 |
백준 10808/10809번 알파벳 찾기 bucket 이용하기 (0) | 2020.08.18 |