아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

카드 게임

면접 대비

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

요약
밥이 늘어놓은 숫자 카드와 앨리스의 카드가 주어질 때, 밥이 왼쪽에서 읽든 오른쪽에서 읽든 그 수보다 작으면서 앨리스가 만들 수 있는 가장 큰 수를 구한다.
난이도

보통10점 중 6점

유형
완전 탐색, 그리디, 정렬, 구현
정답자
아직 제출이 없습니다

문제

Alice와 Bob은 각자 nn장의 카드를 갖고 있고, 각 카드에는 11 이상 99 이하의 숫자가 하나씩 적혀 있다. 두 사람은 각자 자신이 가진 카드로 최대 nn자리의 수를 만들 수 있으며, 더 큰 수를 만든 사람이 이긴다.

Bob은 아직 어려서 큰 수를 만드는 방법을 잘 모른다. 대신 자신이 가진 카드를 바닥에 좌우로 순서대로 나열한 뒤, 좌에서 우로 읽어 만든 수와 우에서 좌로 읽어 만든 수 가운데 아무 수나 고르는 전략을 쓴다. 예를 들어 Bob이 바닥에 나열한 카드의 순서가 [2,3,4][2, 3, 4]라면 Bob은 좌에서 우로 읽어 234234를 만들 수도 있고, 우에서 좌로 읽어 432432를 만들 수도 있다.

Alice는 동생 Bob이 이기게 해 주고 싶어서 다음 규칙에 따라 플레이한다.

  • 먼저 Bob이 바닥에 카드를 내려놓을 때까지 기다린다.
  • Bob이 좌에서 우로 읽든 우에서 좌로 읽든, Bob이 만든 수가 Alice의 수보다 커지도록 해서 동생이 이기게 해 주고 싶다. 단, 카드를 최소 한 장은 사용해야 한다.
  • Bob이 이기게 하는 방법 가운데 자신이 만들 수 있는 가장 큰 수를 만들고 싶다.

예를 들어 Bob이 [2,3,4][2, 3, 4] 순서로 카드를 바닥에 나열했고, Alice가 가진 카드가 [1,2,3][1, 2, 3]이라 하자.

  • Alice가 만들 수 있는 세 자리 수는 123123, 132132, 213213, 231231, 312312, 321321로 모두 여섯 가지다.
  • Bob이 234234와 432432 가운데 어떤 수를 만들지 모르므로, Alice가 231231을 만들면 Bob이 어떤 수를 만들더라도 이기게 해 줄 수 있고, 그 가운데 Alice가 만들 수 있는 가장 큰 수가 된다.

다른 예로, Bob이 [2,1,2][2, 1, 2]를 가지고 있고 Alice가 [2,2,2][2, 2, 2]를 가지고 있다 하자.

  • Bob이 만들 수 있는 수는 좌에서 우로 읽은 경우와 우에서 좌로 읽은 경우 모두 212212로 같다.
  • Alice가 만들 수 있는 세 자리 수는 222222로 212212보다 크므로, Alice는 카드 세 장을 모두 사용해서는 Bob이 이기게 해 줄 수 없다.
  • Alice가 만들 수 있는 두 자리 수에는 2222가 있고, 이것이 이 예의 답이 된다.

입력으로 nn과 두 사람이 가진 카드에 적힌 값이 주어졌을 때, Alice가 만들 수 있는 가장 큰 수를 구해 보자.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 세 줄에 걸쳐 주어진다.

첫째 줄에 nn이 주어진다.

둘째 줄에 Bob이 가진 카드에 적힌 숫자가 공백 없이 주어진다. Bob은 이 순서대로 바닥에 카드를 내려놓는다.

셋째 줄에 Alice가 가진 카드에 적힌 숫자가 공백 없이 주어진다.

출력

각 테스트 케이스의 정답을 한 줄에 하나씩 출력한다.

제한

  • 1≤T≤101 ≤ T ≤ 10
  • 2≤n≤82 ≤ n ≤ 8

예제1

  1. 예제 1

    입력
    5
    2
    99
    99
    3
    212
    222
    3
    234
    123
    4
    4123
    2345
    8
    12345678
    99999999
    
    예상 출력
    9
    22
    231
    2543
    9999999