https://www.acmicpc.net/problem/1427
단순한 배열 정렬 문제이다.
주어진 값의 각 자릿수를 분리해서 배열 형태로 저장
버블 정렬을 사용하였다.
버블정렬: 인접한 두 원소를 비교해 정렬하는 알고리즘
1번째 2번째 원소 비교 후 1번째 원소가 2번째 원소보다 작으면 swap한다.
1번째 2번째 원소 비교 후 1번째 원소가 2번째 원소보다 작으면 swap한다.
... (반복)
C
더보기
더보기
#include <stdio.h>
void swap(int& a, int& b){int temp = b; b = a; a = temp;}
void prints(int arr[], int len){
for(int i = 0; i < len; i++) printf("%d", arr[i]);
}
int v[10];
int main(){
int n; scanf("%d", &n);
int i = 0;
while(n){v[i] = n % 10; n /= 10; i++;}
for(int i = 0; i < 9; i++){
for(int j = i+1; j < 10; j++){
if(v[i] < v[j]) swap(v[i], v[j]);
}}
prints(v, i);
}
Python
더보기
더보기
def swap(a, b): global v; v[a], v[b] = v[b], v[a]
def prints():
global v
for i in range(len(v)): print(v[i], end='')
n = int(input())
v = list()
while n: v.append(n % 10); n //= 10
for i in range(len(v)-1):
for j in range(i+1, len(v)):
if v[i] < v[j]: swap(i, j)
prints()