본문 바로가기
Problem Solving

[C++] [백준 1427] 소트인사이드

by tls1107 2021. 7. 27.
728x90
반응형


문제 풀기 전 생각 : 

/*
숫자의 입력을 문자열로 받는다.
그리고 해당 문자열을 각 글자별로 쪼개어 저장한다.
그리고 정렬 후 출력한다.
*/

#include <iostream>
#include <algorithm>
using namespace std;
bool comp(int a,int b){
  return a > b;
}
int main(){
  string s;
  cin >> s;
  int arr[s.length()];

  for(int i=0 ; i<s.length() ; i++){
    arr[i] = s[i] - '0';
  }

  sort(arr,arr+s.length(),comp);
  for(int i=0 ; i<s.length() ; i++){
    cout << arr[i];
  }
  return 0;
}

https://www.acmicpc.net/problem/1427

 

1427번: 소트인사이드

첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net


풀 때 어려웠던 점 또는 느낀점 :

이제 정렬 문제는 익숙해졌다.

확실히 문제를 꾸준히 푸니까 실력이 느는것 같다

만족스럽다 후후


개선방안 :

#include<cstdio>
int a[111], n;

int main()
{
    scanf("%d", &n);
    while( n )
    {
        a[n%10]++;
        n/=10;
    }
    for( int i=9; i>=0; i-- ) for( int j=0; j<a[i]; j++ ) printf("%d", i);
    
    return 0;
}

내 코드는 문자열로 입력받았지만

위의 코드는 int 타입으로 입력받았다.

이게 좀 더 효율적이려나...

728x90
반응형

댓글