강의로 돌아가기
Eunho Lee

강의에서 마지막 answer[0] 조건에서 간단한 질문

return answer[0] == '0' ? 0: answer; 에서 0 대신 '0' 로 바꿔서 쓰면 오류가 나네요.
0 과 '0'의 차이점이 있나요? 저는 똑같이 문자열을 표현한다고 생각을 했습니다..

작성중인 코드―solution.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool cmp(int a, int b){
    string s1 = to_string(a) + to_string(b);
    string s2 = to_string(b) + to_string(a);
    return s1 > s2; 
}

string solution(vector<int> numbers) {
    string answer = "";
    sort(numbers.begin(), numbers.end(), cmp);
    for (auto& i: numbers){
        answer += to_string(i);
    }
    return answer[0] == '0' ? "0": answer;
}
1 개의 답변
이시윤

같지 않습니다. "0" 은 한 글자로 이루어진 문자열을 나타내는 데 비하여, '0' 은 문자 하나, 즉 하나의 char 를 나타냅니다. 그래서 answer[0] == '0' 으로 한 글자를 비교하는 것이고, 리턴 타입은 string 이므로 문자열인 "0" 을 리턴해야 합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.