정렬

[백준] 1427. 소트인사이드 풀이

hch06 2025. 2. 2. 17:57

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()