3으로 나누어 떨어지지 않는 배열

면접 대비

시간 제한1초메모리 제한128 MB

요약
인접한 두 수의 합이 3으로 나누어지지 않도록 배열을 재배치하거나 불가능하면 -1을 출력합니다.
난이도

보통10점 중 5점

유형
그리디, 수학, 배열
정답자
아직 제출이 없습니다

문제

자연수로 이루어진 배열이 주어진다. 모든 수의 순서를 적절히 바꾸어, 인접한 두 수의 합이 항상 3으로 나누어 떨어지지 않게 만들어야 한다.

가능한 배열이 여러 개라면 그중 아무거나 출력해도 된다. 주어진 수는 모두 정확히 한 번씩 사용해야 한다.

입력

첫째 줄에 배열의 크기 N이 주어진다. (1 <= N <= 10000)

둘째 줄에는 배열에 들어 있는 N개의 자연수가 공백으로 구분되어 주어진다. 각 수는 1000000보다 작거나 같다.

출력

조건을 만족하도록 배열을 만들 수 있다면, 가능한 배열 하나를 한 줄에 출력한다.

불가능하다면 -1을 출력한다.

예제4

  1. 예제 1

    입력
    3
    1 2 3
    
    예상 출력
    1 3 2
    
  2. 예제 2

    입력
    5
    4 6 3 9 8
    
    예상 출력
    6 4 3 8 9
    
  3. 예제 3

    입력
    6
    3 7 6 4 2 8
    
    예상 출력
    3 4 7 6 8 2
    
  4. 예제 4

    입력
    3
    3 12 9
    
    예상 출력
    -1