[10898] 수 정렬하기 3

sky·2022년 8월 13일
0

BaekJoon Online Judge(B)

목록 보기
67/98
post-thumbnail

문제

Bronze Ⅰ

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

Solution

C

#include<stdio.h>

int main() { 
    long num[10001], count, temp;
    scanf("%d", &count);
    for(int i = 0; i < count; i++) {
        scanf("%d", &num[i]);
    }
    for(int i = 0; i < count; i++) {
        for(int j = 0; j < count; j++) {
            if(num[i] < num[j]) {
                temp = num[i];
                num[i] = num[j];
                num[j] = temp;
            }
        }
    }
    for(int i = 0; i < count; i++) {
        printf("%d\n", num[i]);
    }
    return 0;
}

런타임 에러나서 실패

C++

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
    int N, num;
    cin >> N;
    
    vector<int> vec;
    for(int i=0; i<N; i++){
        cin >> num;
        vec.push_back(num);
    }
    
    sort(vec.begin(), vec.end());
    for(int i=0; i < vec.size(); i++)
        cout << vec[i] << "\n";
    return 0;
}

메모리 초과나서 실패

#include <iostream>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL), cout.tie(NULL);
    
    int N, num, arr[10001] = {0,};
    cin >> N;

    for(int i=0; i<N; i++){
        cin >> num;
        arr[num] += 1;
    }
    for(int i=1; i<10001; i++){
        for(int j=0; j < arr[i]; j++)
            cout << i << "\n";
    }
}

성공한 코드

  • ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 중요성

Total Time

  • 2022-03-31 | 11:45 - 12:15/16:40 - 17:00/18:00 - 18:30 : vs에서는 에러가 안 나는데 백준에서는 런타임 에러가 뜬다.
  • 2022-04-02 | 21:15 - 22:00 : 이 정도 했으면 포기할 때 됐다. 자꾸 런타임 에러가 나는 상황..ㅠㅠ
  • 2022-07-10 | 19:00 - 19:15
  • 2022-07-11 | 16:00 - 17:00
  • 2022-08-13 | 14:10 - 14:35 Success!

Review
다시 뜯어봐야 하는 문제.

profile
개발자가 되고 싶은 1人

0개의 댓글

관련 채용 정보