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 후, 큰 자리부터 +
'OLD_알고리즘 > Programmers - 알고리즘' 카테고리의 다른 글
Programmers ] Level 1 - 자릿수 더하기 (0) | 2021.01.08 |
---|---|
Programmers ] Level 1 - 자연수 뒤집어 배열로 만들기 (0) | 2021.01.07 |
Programmers ] Level 1 - 정수 제곱근 판별 (0) | 2021.01.07 |
Programmers ] Level 1 - 제일 작은 수 제거하기 (0) | 2021.01.06 |
Programmers ] Level 1 - 짝수와 홀수 (0) | 2021.01.06 |
댓글