만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

N개의 수로 만드는 길이 M 수열

면접 대비

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

요약
서로 다른 N개의 수와 M이 주어질 때, N개 중 M개를 골라 나열한 순열을 사전순으로 모두 출력한다.
난이도

쉬움10점 중 3점

유형
백트래킹, 재귀, 정렬, 완전 탐색
정답자
아직 제출이 없습니다

문제

서로 다른 자연수 N개와 자연수 M이 주어진다. 이 N개의 수 중에서 M개를 골라 한 줄로 나열해 만들 수 있는 길이 M인 수열을 모두 구하는 프로그램을 작성하시오.

  • 같은 수를 두 번 고를 수는 없다.
  • 고른 수가 같아도 나열한 순서가 다르면 서로 다른 수열이다.

입력

첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)

둘째 줄에 N개의 수가 주어진다. 주어지는 수는 10,000보다 작거나 같은 자연수이고, 모두 다르다.

출력

조건을 만족하는 수열을 한 줄에 하나씩 출력한다. 한 수열의 원소는 공백으로 구분한다. 같은 수열을 두 번 출력하면 안 된다.

수열은 사전 순으로 증가하는 순서로 출력한다. 두 수열의 사전 순은 앞쪽 원소부터 차례로 수의 크기를 비교해 정한다.

예제3

  1. 예제 1

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

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

    입력
    4 4
    1231 1232 1233 1234
    
    예상 출력
    1231 1232 1233 1234
    1231 1232 1234 1233
    1231 1233 1232 1234
    1231 1233 1234 1232
    1231 1234 1232 1233
    1231 1234 1233 1232
    1232 1231 1233 1234
    1232 1231 1234 1233
    1232 1233 1231 1234
    1232 1233 1234 1231
    1232 1234 1231 1233
    1232 1234 1233 1231
    1233 1231 1232 1234
    1233 1231 1234 1232
    1233 1232 1231 1234
    1233 1232 1234 1231
    1233 1234 1231 1232
    1233 1234 1232 1231
    1234 1231 1232 1233
    1234 1231 1233 1232
    1234 1232 1231 1233
    1234 1232 1233 1231
    1234 1233 1231 1232
    1234 1233 1232 1231