신뇽이 되어보자

[프로그래머스] 주사위 게임 3 본문

CodingTest

[프로그래머스] 주사위 게임 3

신뇽이되고싶은미뇽 2025. 2. 24. 20:22
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/181916#

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

하드 코딩하다가 이건 좀 아닌 것 같아서 찾아보니

Arrays.sort   ㄷㄷ....

훨씬 편해졌다.

 

코드를 짜는데 정답률이 87.5%되길래 왜인가 봤더니 

두개만 같은 값이 나왔을 경우에

dice[1]과 dice[2]가 같을 경우를 고려하지 않아서 틀렸었던 것.

 

import java.util.*;

class Solution {
    public int solution(int a, int b, int c, int d) {
        int answer = 0;
        int []dice = {a,b,c,d};
        Arrays.sort(dice);
        //오름차순 정렬을 했을 때 첫번 째 수와 마지막 수가 같다면 4가지 수가 다 같은 수가 나왔다는 의미 
       
        if(dice[0] == dice[3]){
              //세개의 수가 같고 하나의 수가 같지 않다는 의미
            answer = 1111 * dice[0];
        }else if(dice[0]== dice[2]){
            
            answer = ((10 * dice[0] + dice[3]) * (10 * dice[0] + dice[3]));
        }
        else if(dice[1] == dice[3]){
                
            answer = ((10 * dice[1] + dice[0]) * (10 * dice[1] + dice[0]));
        
        }
        else if(dice[0] == dice[1] && dice[2] == dice[3]){
            answer = (dice[0] + dice[2]) * (dice[3] - dice[0]);
        }else if(dice[0] == dice[1] && dice[2] !=dice[3]){
            answer = dice[2] * dice[3];
        }else if(dice[1] == dice[2]){
          answer = dice[0] * dice[3];
        }
        else if(dice[2] == dice[3] && dice[0] !=dice[1]){
            answer = dice[0] * dice[1];
        }else if(dice[0]!= dice[1] && dice[1] != dice[2] && dice[2]!= dice[3]){
            answer = dice[0];
        }
        
      return answer;
}
}

 

 

728x90