euisblue
12933. 정수 내림차순으로 배치하기

Level 1 정수 내림차순으로 배치하기

시간 복잡도: O(N)

1#include <bits/stdc++.h> 2using namespace std; 3 4long long solution(long long n) { 5 long long answer = 0; 6 string s; 7 stringstream ss; 8 ss << n; 9 ss >> s; 10 sort(s.rbegin(), s.rend()); 11 answer = stoll(s); 12 return answer; 13}

숫자를 문자열로 변환한 다음 문자열을 정렬한 다음, 다시 숫자로 변환하는 방식.

std::stream에 있는 stringstream을 사용해서 숫자를 문자열로 변환했다.

1string s; 2stringstream ss; 3ss << n; // 숫자를 집어넣고 4ss >> s; // 문자열로 꺼내기

그런 다음 내장 함수 std::sort를 사용해서 정렬하는데, 내림정렬이기 때문에 뒤에서부터 시작하도록 rbegin (reverse begien)을 사용했다.

1sort(s.rbegin(), s.rend())

마지막으로 문자열을 숫자로 변환한다.

1// long long answer = string_to_long_long(s) 2answer = stoll(s)