코딩하는 해달이

[level 1] 정수 내림차순으로 배치하기 본문

개인 공부/프로그래머스

[level 1] 정수 내림차순으로 배치하기

코딩하는 해달 2022. 7. 20. 00:30

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건

  • n은 1이상 8000000000 이하인 자연수입니다.

문제 이해

long long형식으로 들어온 n을 각 자릿수별 내림차순으로 정렬해야하므로 string형식으로 변환한 다음 크기를 비교해 정렬하고 다시 long long형식으로 변환한다.

 

알고리즘

1. 정수 n을 입력받는다.

2. n을 문자열로 변환한다.

3. 인덱스별로 크기를 비교해 정렬한다.

4. 정수형으로 변환한다.

 

풀이 코드

#include <string>
#include <vector>

using namespace std;

long long solution(long long n) {
    long long answer = 0;
    string num = to_string(n);

    for (int i = 0; i < num.length() - 1; i++) {
        for (int j = i + 1; j < num.length(); j++) {
            char tmp;
            if (num[i] < num[j]) {
                tmp = num[i];
                num[i] = num[j];
                num[j] = tmp;
            }
        }
    }
    answer = stoll(num);


    return answer;
}

https://school.programmers.co.kr/learn/courses/30/lessons/12933

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형
Comments