포커라는 카드게임은 다섯 장으로 된 패의 높고 낮음에 따라 승부를 냅니다. (포커 규칙을 이미 아는 분이라면 규칙 설명 부분은 건너뛰셔도 좋습니다)

카드 한 장은 아래와 같은 순서대로 값이 높아집니다.

2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A

다섯 장으로 이루어진 패의 계급(세칭 "족보")은, 낮은 것부터 높은 순서로 아래와 같습니다.

  • High Card : 가장 높은 카드의 값으로 비교.
  • One Pair : 한 쌍이 같은 카드.
  • Two Pairs : 서로 다른 두 쌍이 같은 카드.
  • Three of a Kind : 세 장이 같은 카드.
  • Straight : 모든 카드가 연속된 숫자.
  • Flush : 모든 카드의 무늬가 같음.
  • Full House : 세 장이 같고, 또 한 쌍이 같음 (Three of a Kind + One Pair).
  • Four of a Kind : 네 장이 같은 카드.
  • Straight Flush : 모든 카드가 연속된 숫자이면서 무늬도 같음.
  • Royal Flush : 10, J, Q, K, A가 무늬도 같음.

두 사람의 패가 같은 종류의 계급이라면, 계급을 구성하는 카드 중 높은 쪽을 쥔 사람이 이깁니다. 예를 들면 8 원페어는 5 원페어를 이깁니다. 
계급을 이루는 카드 숫자까지 같으면 (예: 둘 다 Q 원페어), 다른 카드를 높은 순서대로 비교해서 승부를 정합니다.

텍스트파일 poker.txt 에는 두 선수가 벌인 1,000회의 승부가 저장되어 있습니다. (우클릭해서 다운로드 받으세요)
한 줄에는 10장의 카드가 공백으로 분리되어 들어있는데, 앞의 다섯 장은 1번 선수 것이고 뒤의 다섯 장은 2번 선수의 패입니다. 잘못되거나 중복된 데이터는 없으며, 무승부도 없습니다.

카드 숫자는 2, 3, ... , 9, T, J, Q, K, A 로 (숫자 10은 T로 표시),
무늬는 C (Club - ♣), D (Diamond - ♦), H (Heart - ♥), S (Spade - ♠) 로 표시되어 있습니다.
예를 들면 3C 3D 3S 9S 9D 의 경우 3 풀하우스가 됩니다.

이 데이터를 분석하고, 1번 선수가 이긴 횟수를 구하세요.



새벽내내 이거 가지고 씨름.. 풀긴했는데 어찌 풀었나..--;

이건 루비랑 펄로 안 풀꺼임.



Python


Posted by 용식

Posted by 용식
TAG dict, python


세 변의 길이가 모두 자연수 {a, b, c}인 직각삼각형의 둘레를 p 로 둘 때, p = 120 을 만족하는 직각삼각형은 아래와 같이 세 개가 있습니다.

{20, 48, 52}, {24, 45, 51}, {30, 40, 50}

1000 이하의 둘레 p에 대해서, 직각삼각형이 가장 많이 만들어지는 p의 값은 얼마입니까?


평범한 문제.
직각 삼각형 나오면 일단 피타고라스의 정리..
다만, a,b,c사이의 관계에 따라서 조건을 좀 더 줄여 줄 수 있을 것 같지만
그냥 각각 1~1000까지 loop돌면서 모든 case에 대해 brute-force 로직 적용.

 

Python
Ruby
Perl
Posted by 용식

Posted by 용식


1부터 n까지의 자연수를 차례로 더하여 구해진 값을 삼각수라고 합니다.
예를 들어 7번째 삼각수는 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28이 됩니다.
이런 식으로 삼각수를 구해 나가면 다음과 같습니다.

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

이 삼각수들의 약수를 구해봅시다.

 1: 1
 3: 1, 3
 6: 1, 2, 3, 6
10: 1, 2, 5, 10
15: 1, 3, 5, 15
21: 1, 3, 7, 21
28: 1, 2, 4, 7, 14, 28

위에서 보듯이, 5개 이상의 약수를 갖는 첫번째 삼각수는 28입니다.

그러면 500개 이상의 약수를 갖는 가장 작은 삼각수는 얼마입니까?



소인수의 개수와 약수의 개수를 헷갈려서 맥북 이륙 좀 시키다가 이상하다 싶어서 다시 풀었음..;;
외국 사이트에서는 풀었냐 못 풀었냐가 아니라
몇초안에 답이 나왔냐가 중요한 문제이구만..ㅋㅋ 그래서 나도.. time 코드를 삽입.
문제 풀이자들이 자랑하는 풀이보다 약 9배 느림 ㅋ
Python
2.7버전으로 보이고.. 실행은 해보지 않았으나 0.Xs의 시간이 걸린다고 함..
Ruby
문제가 어려워진다..--;

Perl
Posted by 용식