728x90
안녕하세요 뚜디 입니다:)
코딩테스트 연습 - 정수 내림차순으로 배치하기 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 정수 내림차순으로 배치하기
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이
programmers.co.kr
1. 연습 문제
2. 문제 풀이
3. 소스 코드
4. 결과
1. 연습 문제
- 문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다.
n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
예를들어 n이 118372면 873211을 리턴하면 됩니다.
- 제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
- 입출력 예
n | return |
118372 | 873211 |
2. 문제 풀이
1. 임의의 벡터 temp를 생성하여 입력 받은 정수n을 나머지 연산자를 이용하여 한 숫자씩 temp의 인자로 삽입
2. sort 연산자를 이용하여 temp 내림차순으로 정렬
3. 정렬된 temp인자에 제곱연산을 이용하여 리턴
3. 소스 코드
#include <string>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
long long solution(long long n) {
long long answer = 0;
vector<long long> temp;
int i;
for (i = 0; n > 10; i++) {
temp.push_back(n % 10);
n /= 10;
}
temp.push_back(n);
sort(temp.begin(), temp.end(), greater<int>());
for (int j = 0; j <= i; j++)
{
answer += temp.back() * pow(10, j);
temp.pop_back();
}
return answer;
}
4. 결과
728x90
'Programmers > C++' 카테고리의 다른 글
[C++] 프로그래머스 :: 자릿수 더하기 (0) | 2021.09.17 |
---|---|
[C++] 프로그래머스 :: 자연수 뒤집어 배열로 만들기 (0) | 2021.09.16 |
[C++] 프로그래머스 :: 정수 제곱근 판별 (0) | 2021.09.16 |
[C++] 프로그래머스 :: 제일 작은 수 제거하기 (0) | 2021.09.15 |
[C++] 프로그래머스 :: 짝수와 홀수 (0) | 2021.09.15 |