반응형

● 문제 접근 과정

    1. 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
    2. 1001로 배열의 크기를 잡아도 되지만, 본 필자는 교수님께 동적배열할당을 배웠기에 복습하는 김에 이렇게 작성을 하였다.
    3. N만큼 배열의 값을 받고, 이중for문을 통해서 오름차순 정렬을 해준다 
    4. 마지막에 조건에 맞게 cout을 해준다
    5. 동적으로 받은 메모리를 반납하고, 프로그램을 끝낸다.

● 구현

#include <iostream>
#include <string>

using namespace std;

int main() {
  int length;
  cin >> length;
  int *array = new int[length];
  for (int i = 0; i < length; i++) {
    cin >> array[i];
  }

  for (int i = 0; i < length; i++) {
    for (int j = i + 1; j < length; j++) {
      if (array[i] > array[j])
        swap(array[i], array[j]);
    }
  }

  for (int i = 0; i < length; i++) {
    cout << array[i] << endl;
  }

  delete[] array;

  return 0;
}

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

 

2750번: 수 정렬하기

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 

반응형

+ Recent posts