본문 바로가기
OLD_알고리즘/Programmers - 알고리즘

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

by 달승 2021. 1. 7.

 

 

Q. vector로 return이 아닌데, long long인 answer에 어떻게 숫자를 잘라서 return할 수 있을까?

 

  > 한 자리씩 계산된 값은 vector에 

     결과 값은 sort해준 후, 자릿수만큼 곱해주고 answer에 더해주기

int digit = 1;
.
.
.
    sort(checkN.begin(), checkN.end());
    
    for(long long i = 0; i < checkN.size(); i++){
        answer += checkN[i] * digit;
        digit *= 10;
    }

 

Q. vector<checkN> 자료형에서 일반(int, long long) 자료형인 answer에 값 넣을 수 있을까?

 

   > NO

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

long long solution(long long n) {
    long long answer = 0, temp;
    vector<long long> checkN;
    
    while(n > 0){
        temp = n % 10;
        checkN.push_back(temp);
        n /= 10;
    }
    sort(checkN.rbegin(), checkN.rend());
    
    answer = checkN;  // ---> ERROR
    
    return answer;
}
error: assigning to 'long long' from incompatible type 'vector<long long>'
answer = checkN;

 

 

Q. 내림차순 / 오름차순으로 정렬하는 STL은 무엇일까?

 

  |  오름차순

#include <algorithm>

sort(vec.begin(), vec.end());

 

  |  내림차순

#include <algorithm>

sort(v.begin(), v.end());       // 오름차순 정렬
reverse(v.begin(), v.end());	// 1. 내림차순 정렬 (오름차순정렬 후 같이 사용)

sort(v.rbegin(), v.rend());	// 2. 내림차순 정렬 ( rbegin()과 rend()를 사용)

sort(v.begin(), v.end(), comp); // 3. 내림차순 정렬 (비교함수를 사용)

 

 

🌱 정답코드 

version 1 ) 오름차순 sort후, 1의 자리부터 +

version 2 ) 내림차순 sort 후, 큰 자리부터 + 

 

 

 

 

댓글