[알고리즘문제풀기] 주사위 게임 2

silver's avatar
Jun 11, 2025
[알고리즘문제풀기] 주사위 게임 2

문제

내가 작성한 정답

class Solution { public int solution(int a, int b, int c) { if (a == b && b == c) { return (a + b + c) * (a * a + b * b + c * c) * (a * a * a + b * b * b + c * c * c); } else if (a == b || b == c || a == c) { return (a + b + c) * (a * a + b * b + c * c); } else { return a + b + c; } } } // 삼항연산자 - 이 문제에서는 가독성이 너무 안좋다 class Solution { public int solution(int a, int b, int c) { return (a == b && b == c) ? (a + b + c) * (a*a + b*b + c*c) * (a*a*a + b*b*b + c*c*c) : (a == b || b == c || a == c) ? (a + b + c) * (a*a + b*b + c*c) : a + b + c; } }

다른 사람들의 정답

class Solution { public int solution(int a, int b, int c) { int answer = 1; int count = 1; if(a == b || a == c || b == c) { count++; } if(a == b && b == c) { count++; } for(int i = 1; i <= count; i++) { answer *= (pow(a,i)+pow(b,i)+pow(c,i)); } return answer; } private int pow(int a, int b) { if(b == 0) return 1; return a * pow(a, b-1); } } // Set으로 중복 판단 → 중복되는 것의 개수를 확인하고 출력 import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; class Solution { public int solution(int a, int b, int c) { Set<Integer> numbers = Stream.of(a, b, c).collect(Collectors.toSet()); return (a + b + c) * (numbers.size() < 3 ? a * a + b * b + c * c : 1) * (numbers.size() < 2 ? a * a * a + b * b * b + c * c * c : 1); } }
 
Share article

silver