게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[프로그래머 환영]풀사람 푸세요 번외편(?) 초~중급난이도
게시물ID : science_571짧은주소 복사하기
작성자 : 터보캡
추천 : 2
조회수 : 678회
댓글수 : 6개
등록시간 : 2010/04/02 17:06:01
문제의 내용은 프로젝트 오일러에서 퍼온것임을 밝혀 드립니다.
이 문제는 손으로 푼다기 보다는 프로그래머에게 기초~ 중~ 고급 엔진 코딩을 위하여 도움이 될 것이라는 생각으로 게시하게 되었음을 말씀 드립니다. 문제를 코드로 풀 경우 일반적으로 1분 이내에 결과가 나오게끔
문제의 결과(코드)보다는 그 과정 알고리즘에 관하여 토의를 하였으면 하는 바램으로 게재 합니다.

이 전까지의 문제들이 입문 수준의 문제 였다면 지금 문제는 번외 편으로 초급~ 중급 난이도에 
해당한다고 개인적으로 생각 합니다.(어려운것을 원하는 분이 있을것 같아서;;)

--- 여기부터 문제 ---
http://projecteuler.net/project/poker.txt
카드 포커게임시 한 번의 게임마다 5장의 카드가 주어지고 그에 따라 승패를 확인할 수 있습니다.
카드의 랭크는 다음과 같은 방법으로 확인이 됩니다.
(한글화 하는것 보다는... 영어로 직접 나타내는게 좋을듯 하여서...)
    * High Card: Highest value card.                                
    * One Pair: Two cards of the same value.                        
    * Two Pairs: Two different pairs.                               
    * Three of a Kind: Three cards of the same value.               
    * Straight: All cards are consecutive values.
    * Flush: All cards of the same suit.
    * Full House: Three of a kind and a pair.
    * Four of a Kind: Four cards of the same value.
    * Straight Flush: All cards are consecutive values of same suit.
    * Royal Flush: Ten, Jack, Queen, King, Ace, in same suit.

그리고 카드의 값은 다음과 같습니다.
2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, Ace.

만약 두 사람이 게임을 할 때, 같은 랭크를 가진다면, 숫자가 큰 사람이 이기게 됩니다.
예를들어, 8 pair vs 5 pair => 8 pair win
그러나 랭크가 같으면서도 그 최대 값이 같을 경우 그 다음으로 가장 큰 값을 가진 사람이 이기게 됩니다.
예를 들어 8 pair + another high(queen) vs 8pair + another high(9) => 8 pair + queen win

2사람이 게임을 하는 몇가지 예를 들겠습니다.
Hand                 Player 1             Player 2                   Winner
1                    5H 5C 6S 7S KD       2C 3S 8S 8D TD       Player 2
                     Pair of Fives         pair of Eights

2                    5D 8C 9S JS AC       2C 5C 7D 8S QH       Player 1
                     Highest card Ace      Highest card Queen

3                    2D 9C AS AH AC       3D 6D 7D TD QD       Player 2
                     Three Aces            Flush with Diamonds  

4                    4D 6S 9H QH QC       3D 6D 7H QD QS       Player 1
                      Pair of Queens       Pair of Queens
                      Highest card Nine    Highest card Seven

5                    2H 2D 4C 4D 4S       3C 3D 3S 9S 9D       Player 1
                      Full House           Full House
                      With Three Fours     with Three Threes

링크 주소에 있는 텍스트 파일에는 2명에 대한 1000개의 게임이 포함되어 있습니다.
처음 다섯 카드는 첫 번째 플레이어에 대한 카드이고
다음 다섯 카드는 두 번째 플레이어에 대한 카드입니다.

각 게임에 대한 승자는 분명히 있습니다.(비기는 게임은 없습니다)

첫 번째 플레이어가 몇번이나 이겼을까요~


--- 파싱과 엔진(?) 에 대한 내용을 코딩으로 해야할 문제 입니다 --- 
--- 주말에 하나 더 올릴수 있으면 올릴 생각이기도 한데 이 문제 정도만 하여도 충분히 시간 보내기엔 좋을듯 합니다 관심있는분은 풀어보세요 ^^; ---
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호