바둑이 포커

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

요약
숫자 1부터 15와 흑백 색을 가진 서로 다른 카드 여섯 장이 주어질 때, 만들 수 있는 15개 짝을 정해진 순위 규칙에 따라 정렬해 순서대로 출력한다.
난이도

보통10점 중 4점

유형
정렬, 구현, 완전 탐색, 조합론
정답자
아직 제출이 없습니다

문제

앞면에 1부터 15까지의 자연수가 적혀 있고 뒷면이 검은색 또는 하얀색인 카드 30장이 있다.

카드 한 장은 숫자를 16진수로, 색을 b 또는 w로 적어 표현한다. 예를 들어 뒷면이 하얀색인 15는 fw로 표현한다.

카드를 두 장씩 짝지어 약식 포커를 하는데, 서열은 다음과 같이 정의된다.

  1. 연속된 수 (1과 f는 연속이다.)
  2. 같은 수
  3. 그 외

같은 서열 안에서는 다음과 같이 다시 서열을 정한다.

  1. 색이 같은 쌍
  2. 큰 수가 큰 쪽
  3. 작은 수가 큰 쪽
  4. 큰 수가 검은색

위와 같은 서열로 비교하며, 앞 단계에서 순서가 정해지지 않은 경우에만 다음 단계로 넘어가 비교한다.

서로 다른 카드 6장을 입력받았을 때, 그 카드들로 만들 수 있는 모든 쌍을 서열순으로 출력하시오. 단, 카드 쌍에서 두 장의 순서는 입력받은 카드 순서를 따른다.

입력

첫째 줄에 임의의 카드 6장이 주어진다. 카드는 ','로 구분되어 있고, 같은 카드가 여러 번 주어지는 경우는 없다.

출력

가능한 모든 카드 쌍을 서열순으로 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    aw,1w,4b,5w,fb,cw
    
    예상 출력
    1wfb
    4b5w
    4bfb
    awcw
    5wcw
    1wcw
    aw5w
    aw1w
    1w5w
    fbcw
    awfb
    5wfb
    4bcw
    aw4b
    1w4b
    
  2. 예제 2

    입력
    1w,2w,3w,4w,5w,6w
    
    예상 출력
    5w6w
    4w5w
    3w4w
    2w3w
    1w2w
    4w6w
    3w6w
    2w6w
    1w6w
    3w5w
    2w5w
    1w5w
    2w4w
    1w4w
    1w3w