반응형
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
static String[] cards;
static int[] suit, rank;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = null;
int T = Integer.parseInt(br.readLine());
for(int tc=1; tc<=T; tc++) {
st = new StringTokenizer(br.readLine(), " ");
suit = new int[4];
rank = new int[14];
cards = new String[5];
int cardhand = 9;
for(int i=0; i<5; i++) {
cards[i] = st.nextToken();
switch(cards[i].charAt(0)) {
case 'S' : suit[0]++; break;
case 'D' : suit[1]++; break;
case 'H' : suit[2]++; break;
case 'C' : suit[3]++; break;
}
switch(cards[i].charAt(1)) {
case 'A' : rank[1]++; break;
case '2' : rank[2]++; break;
case '3' : rank[3]++; break;
case '4' : rank[4]++; break;
case '5' : rank[5]++; break;
case '6' : rank[6]++; break;
case '7' : rank[7]++; break;
case '8' : rank[8]++; break;
case '9' : rank[9]++; break;
case 'T' : rank[10]++; break;
case 'J' : rank[11]++; break;
case 'Q' : rank[12]++; break;
case 'K' : rank[13]++; break;
}
}
// 8. One pair
for(int i=1; i<rank.length; i++) if(rank[i] == 2) cardhand=8;
// 7. Tow pair
int cnt=0;
for(int i=1; i<rank.length; i++) {
if(rank[i] == 2) cnt++;
}
if(cnt == 2) cardhand=7;
// 6. Three of a kind
for(int i=1; i<rank.length; i++) if(rank[i] == 3) cardhand=6;
// 5. Straight
String s = "";
String ss = "";
for(int i=1; i<rank.length; i++) {
s += rank[i];
}
for(int i=0; i<suit.length; i++) {
ss += suit[i];
}
if(s.contains("11111")) {
if(!ss.contains("5")) cardhand=5;
}
// 4. Flush
for(int i=0; i<suit.length; i++) if(suit[i] == 5) cardhand = 4;
// 3. Full House
s = "";
for(int i=1; i<rank.length; i++) {
s+=rank[i];
}
if(s.contains("3") && s.contains("2")) cardhand = 3;
// 2. Four of a Kind
for(int i=1; i<rank.length; i++) if(rank[i] == 4) cardhand = 2;
// 1.Straight Flush
s = "";
ss="";
for(int i=1; i<rank.length; i++) {
s += rank[i];
}
for(int i=0; i<suit.length; i++) {
ss += suit[i];
}
if(s.contains("11111") && ss.contains("5")) cardhand=1;
System.out.println("#" + tc + " " + toString(cardhand));
}
}
public static String toString(int data) {
if(data==1) return "Straight Flush";
else if(data==2) return "Four of a Kind";
else if(data==3) return "Full House";
else if(data==4) return "Flush";
else if(data==5) return "Straight";
else if(data==6) return "Three of a kind";
else if(data==7) return "Two pair";
else if(data==8) return "One pair";
else return "High card";
}
}
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[프로그래머스] 프린터 (0) | 2020.05.04 |
---|---|
[SWEA] 1251. [S/W 문제해결 응용] 4일차 - 하나로 (0) | 2020.04.16 |
[백준] 1707. 이분 그래프 (0) | 2020.03.29 |
[SWEA] 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (0) | 2020.03.07 |
[백준] 13460. 구슬 탈출 2 (0) | 2020.03.01 |