Lv.0 주사위 게임2
2023. 12. 7. 00:31ㆍ코딩 테스트/프로그래머스
✏️ 문제
https://school.programmers.co.kr/learn/courses/30/lessons/181930
Python
1. set을 이용하여 중복된 요소를 제거하는 방법
def solution(a, b, c):
answer = 0
# set을 적용하여 중복된 요소 제거
list_len = len(set[a,b,c])
print(list_len)
if list_len == 3 :
# 값이 모두 다른 경우
answer = a + b + c
elif list_len == 2 :
# 두 숫자가 같은 경우
# (a + b + c) × (a2 + b2 + c2 )
answer = (a + b + c) * (a ** 2 + b ** 2 + c ** 2)
elif list_len == 1 :
# (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3)
answer = (a + b + c) * (a ** 2 + b ** 2 + c ** 2) * (a ** 3 + b ** 3 + c ** 3)
return answer
2. 조건문으로 체크하는 방법
def solution(a, b, c):
answer = 0
if a == b and b == c:
# (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )
answer = (a + b + c) * (a ** 2 + b ** 2 + c ** 2) * (a ** 3 + b ** 3 + c ** 3)
elif a == b or b == c or c == a:
# (a + b + c) × (a2 + b2 + c2 )
answer = (a + b + c) * (a ** 2 + b ** 2 + c ** 2)
else:
answer = a + b + c
return answer
Java
class Solution {
public int solution(int a, int b, int c) {
double answer = 0;
if (a == b && b == c) {
// 세 숫자가 모두 같음
// (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )
answer = (a + b + c) * (Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2)) * (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3));
} else if (a == b || b == c || c == a) {
// 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다름
// (a + b + c) × (a2 + b2 + c2 )
answer = (a + b + c) * (Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2));
} else {
answer = a + b + c;
}
return (int) answer;
}
}
다른 사람의 문제 풀이
pow 클래스를 오버라이딩하다니..
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);
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
Lv.0 코드 처리하기 (1) | 2023.12.06 |
---|---|
Lv.1 [PCCP 기출문제] 1번 (1) | 2023.12.05 |
[프로그래머스] Lv.0 flag에 따라 다른 값 반환하기 (2) | 2023.12.03 |
[프로그래머스] Lv.0 조건 문자열 (1) | 2023.12.03 |
[프로그래머스] Lv.0 문자열 반복해서 출력하기 (2) | 2023.12.02 |