풀 하우스

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

요약
52장 덱에서 몇 장이 빠졌는지만 주어질 때, 남은 카드로 만들 수 있는 서로 겹치지 않는 풀하우스(같은 숫자 3장과 다른 숫자 2장) 개수의 최솟값과 최댓값을 구한다.
난이도

어려움10점 중 8점

유형
조합론, 그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

알렉스는 포커에서 사용하는 플레잉 카드 덱 하나를 가지고 있다. 덱은 카드 52장으로 이루어져 있고, 각각의 카드에는 무늬와 수가 하나씩 적혀져 있다. 무늬는 스페이드(♠), 클럽(♣), 다이아몬드(♦), 하트(♥) 중 하나이고, 수는 1보다 크거나 같고, 13보다 작거나 같은 정수이다. 서로 다른 두 카드에 적혀있는 무늬와 수가 모두 같은 카드는 없다. 즉, 덱을 이루는 카드의 수는 4×13 = 52장이다. 이 문제에서 카드는 편의상 (무늬, 수)로 표현한다. 즉, 스페이드 4는 (♠, 4), 하트 6은 (♥, 6)으로 나타낸다.

풀 하우스는 세 장이 같은 정수 v1을 가지고, 나머지 두 장이 같은 정수 v2를 가지는 5장의 카드로 이루어져 있다. 이때, v1와 v2는 다른 값을 가져야 한다.

아래와 같은 카드 다섯 장은 풀 하우스이다.

  • (♠, 1), (♣, 1), (♦, 1), (♠, 2), (♣, 2)

하지만, 아래와 같은 카드 다섯 장은 풀 하우스가 아니다.

  • (♠, 1), (♥, 1), (♠, 2), (♣, 2), (♦, 3)

카드 한 덱을 이용하면, 동시에 8개의 풀 하우스를 만들 수 있다. 이때, 각각의 카드는 하나의 풀 하우스에만 사용되어야 한다. 아래 방법은 여러 가지 방법 중 하나이다.

  • (♠, 1), (♣, 1), (♦, 1), (♠, 13), (♣, 13)
  • (♠, 2), (♣, 2), (♦, 2), (♠, 12), (♣, 12)
  • (♠, 3), (♣, 3), (♦, 3), (♠, 11), (♣, 11)
  • (♠, 4), (♣, 4), (♦, 4), (♠, 10), (♣, 10)
  • (♠, 5), (♣, 5), (♦, 5), (♥, 13), (♦, 13)
  • (♠, 6), (♣, 6), (♦, 6), (♥, 12), (♦, 12)
  • (♠, 7), (♣, 7), (♦, 7), (♥, 11), (♦, 11)
  • (♠, 8), (♣, 8), (♦, 8), (♥, 10), (♦, 10)

얼마 전, 알렉스의 집에 놀러온 밥이 알렉스의 카드 덱중 일부를 집에 가져갔다. 아직 알렉스는 어떤 카드를 밥이 가져갔는지 알지 못하고, 밥이 가져간 카드의 수만 아는 상태이다.

알렉스는 남은 카드를 이용해 최대 몇 개의 풀 하우스를 만들 수 있는지 궁금해졌다. 아직, 어떤 카드를 밥이 가져갔는지 알지 못하기 때문에, 만들 수 있는 풀 하우스의 개수는 달라질 수 있다.

예를 들어, 알렉스가 카드 10장만 가지고 있고, 그 카드가 모두 ♣ 무늬라면, 만들 수 있는 풀 하우스의 개수는 0개이다. 하지만, 10장이 (♠, 1), (♠, 2), (♠, 11), (♠, 12), (♣, 2), (♣, 12), (♦, 1), (♦, 2), (♦, 11), (♦, 12) 라면, 동시에 만들 수 있는 풀 하우스의 개수는 아래와 같이 2개이다.

  • (♠, 1), (♦, 1), (♣, 2), (♠, 2), (♦, 2)
  • (♠, 11), (♦, 11), (♣, 12), (♠, 12), (♦, 12)

밥이 가져간 카드의 수만 알고있을 때, 동시에 최대로 만들 수 있는 풀 하우스 패의 최소 개수와 최대 개수를 구하는 프로그램을 작성하시오. 이때, 일부러 카드를 사용하지 않는 것은 불가능하며, 최대한 많은 풀 하우스를 만들기 위해 노력해야 한다.

입력

첫째 줄에 밥이 가져간 카드의 수 n(0 ≤ n ≤ 52)이 주어진다.

출력

첫째 줄에 남아있는 카드를 이용해 동시에 최대로 만들 수 있는 풀 하우스의 최소 개수와 최대 개수를 공백으로 구분해 출력한다.

예제5

  1. 예제 1

    입력
    42
    
    예상 출력
    0 2
    
  2. 예제 2

    입력
    47
    
    예상 출력
    0 1
    
  3. 예제 3

    입력
    0
    
    예상 출력
    8 8
    
  4. 예제 4

    입력
    4
    
    예상 출력
    8 8
    
  5. 예제 5

    입력
    20
    
    예상 출력
    3 6