반응형
* 개인 공부를 위하여 간단하게 정리한 것입니다.
* 틀린 부분 지적은 늘 환영입니다.
@ 숫자형태의 string을 조합하여 어떤 순서로 조합했을 때 큰 숫자를 반환할 수 있는지 비교할 때 유용한 방법입니다.
1. string "520"과 "42"를 생성하고, "52042"와 "42520" 중에서 어떤 수가 더 큰지 간단하게 확인해봅시다.
string str1 = "520";
string str2 = "42";
string str12, str21;
str12 = str1 + str2;
str21 = str2 + str1;
cout << str12 << endl << str21 << endl;
당연히 "52042"가 더 큰 것을 육안으로 확인할 수 있습니다.
2. 이번에는 위에서 생성한 str1과 str2가 ipnut이 되는 함수를 하나 생성합니다.
2.1. str1+str2가 더 크면 true
2.2. str2+str1이 더 크면 false를 반환하는 함수입니다.
bool cmp_trial(string s1, string s2) {
// s1+s2가 더 크면 true 반환
return stoi(s1 + s2) > stoi(s2 + s1) ? true : false;
}
2.3. 여기서 stoi는 string to int 즉, string을 int형으로 변환하는 함수입니다.
3. cmp_trial을 다음과 같이 실행합시다.
bool chk;
chk = cmp_trial(str1, str2);
cout << chk << endl;
4. true (1)를 반환합니다.
5. 전체 코드
#include<string>
#include<iostream>
using namespace std;
bool cmp_trial(string s1, string s2) {
// s1+s2가 더 크면 true 반환
return stoi(s1 + s2) > stoi(s2 + s1) ? true : false;
}
int main() {
string str1 = "520";
string str2 = "42";
string str12, str21;
str12 = str1 + str2;
str21 = str2 + str1;
cout << str12 << endl << str21 << endl;
bool chk;
chk = cmp_trial(str1, str2);
cout << chk << endl;
return 0;
}
반응형
'공부 > C++' 카테고리의 다른 글
9. C++ 미로찾기(Queue, Maze) (0) | 2021.08.19 |
---|---|
8. C++ 동적프로그래밍, 재귀, Top Down, Bottom Up, 피보나치 (0) | 2021.08.19 |
7. C++ 오름차순 정렬 (vector, sort, ascending, descending) (0) | 2021.08.19 |
6. C++ string 크기 비교 2 (compare, cmp) (0) | 2021.08.19 |
4. C++ Vector 공백 제거 (0) | 2021.08.19 |
3. C++ 배열 생성 (0) | 2021.08.19 |
2. C++ vector 1차원, 2차원 초기화 및 출력 (0) | 2021.08.19 |
1. C++ Makefile 간단 사용법 (0) | 2021.08.19 |