Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 2.08 KB

quiz_9877.md

File metadata and controls

43 lines (31 loc) · 2.08 KB

1부터 n까지 숫자가 적혀있는 n 개의 카드가 위에서 아래로 오름차순으로 정렬되어있다. 그리고, 1이상 자연수 여러개가 담긴 배열 k_list 가 주어졌을 때, 머쓱이는 k_list에서 순서대로 하나씩 k를 꺼내서 다음과 같은 방법으로 카드를 섞는다.

  1. 아래쪽부터 위쪽으로 k개의 카드를 잡는다.
  2. 잡은 카드를 나머지 카드들의 위로 올린다.
  3. 2번에서 잡은 카드의 아래부터 절반을 잡아서 2번을 반복한다. a. 2번에서 잡은 카드의 개수가 짝수라면 (잡은 카드의 개수) / 2 만큼 절반을 잡는다. b. 2번에서 잡은 카드의 개수가 홀수라면 (잡은 카드의 개수 + 1) / 2 만큼 절반을 잡는다.
  4. 3번에서 잡은 카드의 절반의 개수가 1이면 카드들의 맨위로 올리고 섞기를 종료한다.

k_list에 있는 모든 k에 대해 위와 같은 방법으로 카드를 섞은 후 최종 카드의 상태를 반환하자.


제한 사항

n은 2 이상 1000 이하의 수로 주어진다. k는 1 이상 n 미만의 수로 주어진다. k_list의 길이는 1이상 100 이하이다.

입출력 예

n k_list return
10 [5,1,2,5,3] [9, 10, 5, 2, 1, 7, 8, 6, 4, 3]

입출력 예 설명

예제 #1

k에 따른 카드 섞기의 결과는 다음과 같다.

k cards
처음 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
5 [10, 9, 8, 6, 7, 1, 2, 3, 4, 5]
1 [5, 10, 9, 8, 6, 7, 1, 2, 3, 4]
2 [4, 3, 5, 10, 9, 8, 6, 7, 1, 2]
5 [2, 1, 7, 8, 6, 4, 3, 5, 10, 9]
3 [9, 10, 5, 2, 1, 7, 8, 6, 4, 3]

아래 그림은 첫 번째 k가 5일 때 섞이는 과정을 나타낸다.

스크린샷 2021-11-01 오전 9.05.56.png

모든 k에 대하여 섞은 후의 결과는 [9, 10, 5, 2, 1, 7, 8, 6, 4, 3]이다.