매일프로그래밍 - Question 9

MP·2019년 12월 18일
0

11/24/2019 문제 의 재탕

문제

정수 배열(int array)이 주어지면 0이 아닌 정수 순서를 유지하며 모든 0을 배열 오른쪽 끝으로 옮기시오. 단, 시간복잡도는 O(n), 공간복잡도는 O(1)여야 합니다.

Input

[0, 5, 0, 3, -1]

Output

[5, 3, -1, 0, 0]

Input

[3, 0, 3]

Output

[3, 3, 0]

void zerosToEnd(int in[], int out[], int n) {
  int i, idx;
  for (i = 0, idx = 0 ; i < n; i++) {
    if (in[i] == 0) {
      out[idx++] = in[i];
    }
  }
  for (i = idx; i < n; i++) {
    out[i] = 0;
  }
}

0개의 댓글