Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.04 KB | None | 0 0
  1. package Exam_Preparation_2;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4.  
  5. import java.io.InputStreamReader;
  6. 6
  7. import java.util.*;
  8. 7
  9. import java.util.regex.Matcher;
  10. 8
  11. import java.util.regex.Pattern;
  12. 9
  13. import java.util.stream.Collectors;
  14. 10
  15.  
  16. 11
  17. /**
  18. 12
  19.  * Created by teodor donchev on 10/19/2017.
  20. 13
  21.  */
  22. 14
  23. public class p01_HandScore {
  24. 15
  25.     public static void main(String[] args) throws IOException {
  26. 16
  27.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  28. 17
  29.  
  30. 18
  31.         String[] input = reader.readLine().split(" ");
  32. 19
  33.         int result = 0;
  34. 20
  35.         int counter = 1;
  36. 21
  37.         int out = 0;
  38. 22
  39.         int nextNums = 0;
  40. 23
  41.  
  42. 24
  43.         Deque<Integer> sequence = new ArrayDeque<>();
  44. 25
  45.  
  46. 26
  47.         for (int i = 0; i < input.length; i++) {
  48. 27
  49.             String currentCard = input[i];
  50. 28
  51.             int currentNumber = getNumberValue(currentCard.substring(0, currentCard.length() - 1));
  52. 29
  53.             String currentSuit = currentCard.charAt(currentCard.length() - 1) + "";
  54. 30
  55.  
  56. 31
  57.             for (int j = i + 1; j < input.length ; j++) {
  58. 32
  59.                 int nextNumber = getNumberValue(input[j].substring(0, input[j].length() - 1));
  60. 33
  61.                 String nextSuit = input[j].charAt(input[j].length() - 1) + "";
  62. 34
  63.                 if(j == input.length - 1){
  64. 35
  65.                     i = j;
  66. 36
  67.                 }
  68. 37
  69.  
  70. 38
  71.                 if (currentSuit.equals(nextSuit)) {
  72. 39
  73.                     if(counter == 1) {
  74. 40
  75.                         sequence.offer(currentNumber);
  76. 41
  77.                     }
  78. 42
  79.                     counter++;
  80. 43
  81.                     sequence.offer(nextNumber);
  82. 44
  83.                 }
  84. 45
  85.                 else { counter = 1; i = j - 1;break;}
  86. 46
  87.             }
  88. 47
  89.  
  90. 48
  91.             if (sequence.size() != 0) {
  92. 49
  93.                 int size = 0;
  94. 50
  95.                 int toAdd = 0;
  96. 51
  97.                 while (!sequence.isEmpty()) {
  98. 52
  99.                     size++;
  100. 53
  101.                     toAdd += sequence.poll();
  102. 54
  103.                 }
  104. 55
  105.                 toAdd *= size;
  106. 56
  107.                 result += toAdd;
  108. 57
  109.             }
  110. 58
  111.             else{
  112. 59
  113.                 result += currentNumber;
  114. 60
  115.             }
  116. 61
  117.         }
  118. 62
  119.  
  120. 63
  121.         System.out.println(result);
  122. 64
  123.     }
  124. 65
  125.  
  126. 66
  127.  
  128. 67
  129.     private static int getNumberValue(String current) {
  130. 68
  131.         Pattern pattern = Pattern.compile("[0-9]+");
  132. 69
  133.         Matcher matcher = pattern.matcher(current);
  134. 70
  135.  
  136. 71
  137.         int number = 0;
  138. 72
  139.  
  140. 73
  141.         if (matcher.find()) {
  142. 74
  143.             number = Integer.parseInt(matcher.group());
  144. 75
  145.         } else {
  146. 76
  147.             switch (current.charAt(0)) {
  148. 77
  149.                 case 'J':
  150. 78
  151.                     return 12;
  152. 79
  153.                 case 'Q':
  154. 80
  155.                     return 13;
  156. 81
  157.                 case 'K':
  158. 82
  159.                     return 14;
  160. 83
  161.                 case 'A':
  162. 84
  163.                     return 15;
  164. 85
  165.             }
  166. 86
  167.         }
  168. 87
  169.         return number;
  170. 88
  171.     }
  172. 89
  173. }
  174. 90
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement