- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- C언어
- 백준
- 비주얼 베이직
- android studio
- 프로그래머스
- 로그인
- 연결리스트
- Firebase
- 자바
- 프로그래밍 입문
- 코딩테스트
- python
- 안드로이드 스튜디오
- oauth
- Java
- 정렬
- C++
- 배열
- sql
- til
- 구글 로그인
- 자료구조
- firebase google
- 컴퓨터공학과
- 파이썬
- 안드로이드
- 동적할당
- 공유대학
- 알고리즘
Archives
코딩하는 해달이
[level 1] 정수 내림차순으로 배치하기 본문
문제 설명
함수 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
반응형
'개인 공부 > 프로그래머스' 카테고리의 다른 글
[level 1] 자릿수 더하기 (0) | 2022.07.20 |
---|---|
[level 1] 자연수 뒤집어 배열로 만들기 (0) | 2022.07.20 |
[level 1] 정수 제곱근 판별 (0) | 2022.07.20 |
[level 1] 제일 작은 수 제거하기 (0) | 2022.07.20 |
[level 1] 짝수와 홀수 (0) | 2022.07.20 |
Comments