728x90
반응형
단순히 존재하는 숫자들을 1자리 숫자로 쪼갠 뒤 내림차순으로 정렬하면 되는 문제이다.
전략
쪼갠 원소(1234 -> 1, 2, 3, 4 )들을 배열 안으로 넣은 뒤 내림차순으로 정렬하는 과정을 통해 최종 답을 도출해 낸다.
시도 1(Python)
import sys
input = sys.stdin.readline
num = list(input().strip())
arr = []
for i in num:
arr.append(int(i))
arr.sort(reverse=True)
print(''.join(str(n) for n in arr))
<평가> 웬만한 실버 문제가 이런 내장함수만 가지고 쉽게 풀리는 경우가 별로 없는데 이 문제는 다행히도 빨리 풀렸다.
추가 정리
join() 매서드에 대해 더 알아보자.
- ' '으로 빈 문자열을 생성해 준다.
- 빈 문자열 안으로 넣을 요소들을 join()을 통해 합쳐준다. 단 반드시 그 요소들은 문자형이어야 한다. 따라서 str(n)을 붙여준다.
- arr 안에 있는 모든 요소들을 for을 통해 꺼내준다.
시도 2(C)
#include <stdio.h>
#include <string.h>
int main()
{
char arr[10];
char tmp;
scanf("%s",arr);
int size=strlen(arr);
for(int i=0;i<size-1;i++)
for(int j=0;j<size;j++)
{
if(arr[j]<arr[j+1])
{
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
printf("%s",arr);
return 0;
}
입력될 숫자는 최대 10자리 숫자이므로 크기 10짜리 배열을 선언해주고 입력된 숫자의 자릿수를 strlen()을 통해 받는다. 마지막으로 버블 정렬을 통해 내림차순으로 정렬해 준다.
728x90
반응형
'백준 > Silver(1~5)' 카테고리의 다른 글
[백준]_18221번 : 교수님 저는 취업할래요 (0) | 2023.07.27 |
---|---|
[백준]_11659번 : 구간 합 구하기 4(파이썬 and C언어) (0) | 2023.07.26 |
[백준]_1316번 : 그룹 단어 체커(파이썬 and C언어) (0) | 2023.07.24 |
[백준]_1312 번 : 소수(파이썬 and C언어) (0) | 2023.07.23 |
[백준]_1181번 : 단어 정렬(파이썬 and C언어) (0) | 2023.07.22 |