Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. // 배열의 원소는 1~13
  2. // 이 배열에서 2번이상 페어로 나오는 숫자들을 비교해서 둘중 어느쪽이 더 큰값인지
  3.  
  4. // 양쪽 배열에 모두 페어가 없으면 0
  5. // 같은 숫자 2개가 페어로 나오는 경우보다 3개가 페어이면 큰값
  6. // 같은숫자 3개가 페어로 나오는경우보다 4개가 페어이면 큰값
  7. // 같은 숫자 5개 이상이면 4개가 페어인것과 같음
  8. // 양쪽모두페어개수가 같다면 더 큰 숫자가 큰 값
  9. // 숫자페어가 2벌이 나오면 더 큰 숫자로 되어있는 페어만
  10. // 양쪽 배열에서 페어 숫자가 같으면 비교를 할 수 없으니 0
  11.  
  12. function check(arr1, arr2){
  13. let count1 = {};
  14. let count2 = {};
  15. let pair1;
  16. let pair2;
  17. for(let i = 0; i < arr1.length; i++){
  18. if(String(arr1[i]) in count1) count1[arr1[i]]++;
  19. else count1[arr1[i]] = 1;
  20. if(String(arr2[i]) in count2) count2[arr2[i]]++;
  21. else count2[arr2[i]] = 1;
  22. }
  23. Object.keys(count1).forEach(function (key){
  24. if(count1[key]===1) delete count1[key];
  25. })
  26. Object.keys(count2).forEach(function (key){
  27. if(count2[key]===1) delete count2[key];
  28. })
  29. for(let pairNum in count1){
  30. if(pair1===undefined) pair1 = [pairNum, count1[pairNum]];
  31. else if(pair1[1] < count1[pairNum] && pair1[1]<4) pair1 = [pairNum, count1[pairNum]];
  32. else if(pair1[0] < pairNum && pair1[1] === count1[pairNum]) pair1 = [pairNum, count1[pairNum]]
  33. }
  34. for(let pairNum in count2){
  35. if(pair2===undefined) pair2 = [pairNum, count2[pairNum]];
  36. else if(pair2[1] < count2[pairNum] && pair2[1]<4) pair2 = [pairNum, count2[pairNum]];
  37. else if(pair2[0] < pairNum && pair2[1] === count2[pairNum]) pair2 = [pairNum, count2[pairNum]]
  38. }
  39. if(pair1 === undefined || pair2 === undefined){
  40. if(pair1 === pair2) return 0;
  41. else if(pair1 === undefined) return 2;
  42. else if(pair2 === undefined) return 1;
  43. }
  44. else if(pair1[1] === pair2[1] || (pair1[1]>=4 && pair2[1]>=4)) {
  45. if(pair1[0] > pair2[0]) return 1;
  46. else if(pair1[0]< pair2[0]) return 2;
  47. else return 0;
  48. }
  49. else return pair1[1] > pair2[1] ? 1 : 2;
  50. }
  51.  
  52. function isEmpty(obj){
  53. if(Object.keys(obj).length===0) return true;
  54. else return false;
  55. }
  56.  
  57. check([1,1,1,1,1,1,1], [2,2,2,2,1,1,3]) === 2
  58. check([1,5,7,2,9,13,10], [2,3,9,10,4,8,11]) === 0
  59. check([1,4,1,3,5,6,10], [9,2,3,1,3,4,10]) === 2
  60. check([1,1,9,4,1,3,11],[2,3,3,13,12,9,9]) === 1
  61. check([1,4,9,4,1,10,13], [11,13,9,3,1,9,1]) === 2
  62. check([1,4,4,4,1,10,4], [11,13,11,3,11,9,1]) === 1
  63. check([1,2,2,3,2,2,2], [4,5,4,5,4,5,4]) === 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement