개요
야찌 게임을 구현하되, 점수 계산 할 때 최고 점수로 계산하라.
야찌게임이란?
주사위 5개를 던전지고, 그 주사위의 눈으로 최적의 카테고리를 찾아, 높은 점수를 낸 사람이 이기는 게임이다. 카테고리는 밑에 나열했다.
주사위 5개를 한번에 던지는 것을 "라운드" 라고 표현하는데, 한 게임은 13 라운드이다. 라운드 한개당 한개의 카테고리를 선택할 수 있으며. 선택된 카테고리를 다시 선택 할 수 없다.
총점은 이렇게 선택된 카테고리로 계산된 점수들로, 각 라운드 별 총 합 + 보너스 점수이다.
보너스 점수는 카테고리 1 ~ 카테고리 6 까지의 점수가 총 63점 이상일 경우 35점을 주는 점수는 말한다.
카테고리들
카테고리 1 - 모든 1들의 합
카테고리 2 - 모든 2들의 합
카테고리 3 - 모든 3들의 합
카테고리 4 - 모든 4들의 합
카테고리 5 - 모든 5들의 합
카테고리 6 - 모든 6들의 합
카테고리 7 - 모든 숫자의 합
카테고리 8 - 같은 주사위가 적어도 3개 일 때, 모든 숫자의 합
카테고리 9 - 같은 주사위가 적어도 4개 일 때, 모든 숫자의 합
카테고리 10 - 같은 주사위가 적어도 5개 일 때, 50점
카테고리 11 - 4 개의 주사위가 연속된 숫자일 때, 25점
카테고리 12 - 5 개의 주사위가 연속된 숫자일 때, 35점
카테고리 13 - 3개가 같은 숫자이고, 나머지 2개가 같은 숫자일때, 40점
입력
각 줄에는 1 ~ 6 까지의 정수 5개가 입력 된다. 이는 5개의 주사위의 각 주사위의 눈을 뜻한다. 이렇게 13개의 줄이 입력되면, 한 게임이 되며, 점수를 산출하여 출력해야 한다. 빈줄이 삽입되면, 게임을 종료 시킨다.
출력
한 게임당 한 줄에 15개의 숫자를 출력하고, 카테고리 1 ~ 카테고리 13의 점수, 보너스 점수, 총점 으로 출력하고, 각 점수를 한칸씩 띄어서 출력한다.
출력 할 총 점은 최고의 점수로 출력해야 한다.
야찌 룰
http://latte4u.net/350
http://anisette.egloos.com/2949137
http://blog.naver.com/leemigyo/20014485758
http://uva.onlinejudge.org/external/101/10149.html
문제 풀이
http://blog.naver.com/gold_link/150048716950
"최고 점수를 구하는 방법" 을 구현하는 중 막혔다. ....
'IT책 정리실 > Programming Challenges : 알고리즘 트래이닝 북' 카테고리의 다른 글
| 문제 16, 야찌(Yahtzee) (4) | 2009/12/21 |
|---|---|
| 문제 15, 경시 대회 점수판(Contest Scoreboard) (0) | 2009/12/13 |
| 문제 14, 에르되시 수 (Erdos Numbers) (1) | 2009/12/08 |
| 문제 13, 쌓아 올리기 (Stack 'em Up) (1) | 2009/11/25 |
댓글을 달아 주세요
두 가지 방법
1. 카테고리를 분석해서 최고 높은 점수를 받을 수 있는 경우를 찾아서 코드로 구현을 하는 방법
2. 모든 경우의 수를 조사하여, 최고 높은 점수를 받는 경우를 찾는 방법
이렇게 이 두가지 방법이 있겠다.
1번은 "어떻게 스타크래프트를 잘 할 수 있는지 생각하는 것" 이고,
2번은 "이길때까지 스타크래프트를 하는 것" 이다.
모르는 것을 알았다.
각 카테고리에 원하는 라운드를 고를 경우, 다른 카테고리에 얼마큼의 손실을 입힐 수 있는지 수식을 계산한줄 모른다는 것을 알았다.
계산해서 구현해 놔야 하는데, 생각을 구체화 못하겠다. 구체화 못하는 이유가 생각이 없어서 인지, 규칙을 못찾아서 인지. 흠!
풀어야 하는데 선뜻 못하겠음.