아무리 쉬운 코드도 리뷰 합니다.
문제 설명
1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다.
세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다.
세 숫자가 모두 다르다면 a + b + c 점을 얻습니다.
세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면
(a + b + c) × (a2 + b2 + c2 )점을 얻습니다.
세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다.
세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
제한사항
a, b, c는 1이상 6이하의 정수입니다.
입출력 예
a b c result
2 6 1 9
5 3 3 473
4 4 4 110592
입출력 예 설명
입출력 예 #1
예제 1번에서 세 주사위 숫자가 모두 다르므로 2 + 6 + 1 = 9점을 얻습니다.
따라서 9를 return 합니다.
입출력 예 #2
예제 2번에서 두 주사위 숫자만 같으므로
(5 + 3 + 3) × (52 + 32 + 32 ) = 11 × 43 = 473점을 얻습니다.
따라서 473을 return 합니다.
입출력 예 #3
예제 3번에서 세 주사위 숫자가 모두 같으므로
(4 + 4 + 4) × (42 + 42 + 42 ) × (43 + 43 + 43 ) = 12 × 48 × 192 = 110,592점을 얻습니다.
따라서 110592를 return 합니다.
----------------------------------------------------------------------------------
class Solution {
public int solution(int a, int b, int c) {
int sum = a + b + c;
int sumOfSquares = a * a + b * b + c * c;
int sumOfCubes = a * a * a + b * b * b + c * c * c;
if (a == b && b == c) {
// 세 숫자가 모두 같은 경우
return sum * sumOfSquares * sumOfCubes;
} else if (a == b || b == c || a == c) {
// 두 숫자가 같은 경우
return sum * sumOfSquares;
} else {
// 세 숫자가 모두 다른 경우
return sum;
}
}
}
설명
- 변수 초기화:
- sum: 주사위 세 숫자의 합을 저장합니다.
- sumOfSquares: 주사위 숫자의 제곱의 합을 저장합니다.
- sumOfCubes: 주사위 숫자의 세제곱의 합을 저장합니다.
- 세 숫자가 모두 같은 경우:
- 세 숫자가 모두 같을 때는sum * sumOfSquares * sumOfCubes 로 점수를 계산합니다.
- 두 숫자가 같은 경우:
- 세 숫자 중 두 숫자가 같을 때는 sum * sumOfSquares 로 점수를 계산합니다.
- 세 숫자가 모두 다른 경우:
- 세 숫자가 모두 다를 때는 sum 로 점수를 계산합니다.
중요코드
- if(조거문)에 조건을 잘 설정 하는게 매우 중요합니다.
실행결과
정확성 테스트
테스트 1 〉 | 통과 (0.03ms, 77MB) |
테스트 2 〉 | 통과 (0.02ms, 74.4MB) |
테스트 3 〉 | 통과 (0.03ms, 74.4MB) |
테스트 4 〉 | 통과 (0.03ms, 77.6MB) |
테스트 5 〉 | 통과 (0.02ms, 75.4MB) |
테스트 6 〉 | 통과 (0.02ms, 73.3MB) |
테스트 7 〉 | 통과 (0.04ms, 78.8MB) |
테스트 8 〉 | 통과 (0.02ms, 68.3MB) |
테스트 9 〉 | 통과 (0.02ms, 71.6MB) |
테스트 10 〉 | 통과 (0.02ms, 77.5MB) |
테스트 11 〉 | 통과 (0.03ms, 77.2MB) |
테스트 12 〉 | 통과 (0.02ms, 73MB) |
테스트 13 〉 | 통과 (0.03ms, 74.7MB) |
테스트 14 〉 | 통과 (0.03ms, 74.3MB) |
테스트 15 〉 | 통과 (0.01ms, 76.7MB) |
테스트 16 〉 | 통과 (0.03ms, 74.7MB) |
테스트 17 〉 | 통과 (0.02ms, 76.6MB) |
테스트 18 〉 | 통과 (0.03ms, 73.2MB) |
테스트 19 〉 | 통과 (0.01ms, 73.6MB) |
테스트 20 〉 | 통과 (0.02ms, 73.7MB) |
테스트 21 〉 | 통과 (0.02ms, 75.3MB) |
테스트 22 〉 | 통과 (0.02ms, 75.2MB) |
테스트 23 〉 | 통과 (0.03ms, 69.7MB) |
테스트 24 〉 | 통과 (0.01ms, 75.9MB) |
테스트 25 〉 | 통과 (0.01ms, 76.6MB) |
테스트 26 〉 | 통과 (0.03ms, 73.8MB) |
테스트 27 〉 | 통과 (0.01ms, 75.2MB) |
테스트 28 〉 | 통과 (0.01ms, 74.1MB) |
테스트 29 〉 | 통과 (0.02ms, 76.4MB) |
테스트 30 〉 | 통과 (0.02ms, 86.7MB) |
테스트 31 〉 | 통과 (0.02ms, 67.7MB) |
테스트 32 〉 | 통과 (0.02ms, 73.2MB) |
테스트 33 〉 | 통과 (0.03ms, 79.1MB) |
테스트 34 〉 | 통과 (0.02ms, 70.3MB) |
테스트 35 〉 | 통과 (0.01ms, 77.5MB) |
테스트 36 〉 | 통과 (0.03ms, 76.3MB) |
테스트 37 〉 | 통과 (0.04ms, 78.5MB) |
테스트 38 〉 | 통과 (0.03ms, 77.7MB) |
테스트 39 〉 | 통과 (0.02ms, 74.4MB) |
테스트 40 〉 | 통과 (0.01ms, 74.7MB) |
테스트 41 〉 | 통과 (0.03ms, 77.7MB) |
테스트 42 〉 | 통과 (0.02ms, 71.1MB) |
테스트 43 〉 | 통과 (0.03ms, 69.5MB) |
테스트 44 〉 | 통과 (0.01ms, 75MB) |
테스트 45 〉 | 통과 (0.03ms, 83.3MB) |
테스트 46 〉 | 통과 (0.02ms, 74.8MB) |
테스트 47 〉 | 통과 (0.03ms, 74.7MB) |
테스트 48 〉 | 통과 (0.02ms, 77.5MB) |
테스트 49 〉 | 통과 (0.02ms, 77.4MB) |
테스트 50 〉 | 통과 (0.02ms, 78.2MB) |
테스트 51 〉 | 통과 (0.03ms, 73.7MB) |
테스트 52 〉 | 통과 (0.02ms, 77.5MB) |
테스트 53 〉 | 통과 (0.02ms, 77MB) |
테스트 54 〉 | 통과 (0.03ms, 81.5MB) |
테스트 55 〉 | 통과 (0.02ms, 77.1MB) |
테스트 56 〉 | 통과 (0.03ms, 79.3MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'ALGORITHM > 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스]이어 붙인 수 (0) | 2024.07.31 |
---|---|
[프로그래머스]원소들의 곱과 합 (0) | 2024.07.31 |
[ 프로그래머스]등차수열의 특정한 항만 더하기 (0) | 2024.07.30 |
[ 프로그래머스]코드 처리하기 (0) | 2024.07.30 |
[프로그래머스]flag에 따라 다른 값 반환하기 (0) | 2024.07.29 |