문제
https://school.programmers.co.kr/learn/courses/30/lessons/181930
문제 설명
1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a
, b
, c
라고 했을 때 얻는 점수는 다음과 같습니다.
- 세 숫자가 모두 다르다면
a
+b
+c
점을 얻습니다. - 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (
a
+b
+c
) × (a²
+b²
+c²
)점을 얻습니다. - 세 숫자가 모두 같다면 (
a
+b
+c
) × (a²
+b²
+c²
) × (a³
+b³
+c³
)점을 얻습니다.
세 정수 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 |
Code
def solution(a, b, c):
from math import pow
cnt = len(set([a, b, c]))
if cnt == 3:
return a + b + c
elif cnt == 2:
return (a + b + c) * (pow(a, 2) + pow(b, 2) + pow(c, 2))
elif cnt == 1:
return (a + b + c) * (pow(a, 2) + pow(b, 2) + pow(c, 2)) * (pow(a, 3) + pow(b, 3) + pow(c, 3))
- `set()`을 이용하여 중복되는 숫자를 제거한 뒤 개수에 따라서 원하는 값을 구해주면 된다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Lv.0/Python] 등차수열의 특정한 항만 더하기 (0) | 2023.06.17 |
---|---|
[Lv.0/Python] 원소들의 곱과 합 (0) | 2023.06.17 |
[Lv.0/Python] 코드 처리하기 (0) | 2023.06.17 |
[Lv.0/Python] 특수문자 출력하기 (0) | 2023.06.15 |
[Lv.0/Python] 대소문자 바꿔서 출력하기 (0) | 2023.06.15 |