728x90
반응형
SMALL
Programmers 레벨 0_코딩 기초 트레이닝 문제 풀이
https://school.programmers.co.kr/learn/challenges/training?order=recent
코딩 기초 트레이닝 | 프로그래머스 스쿨
프로그래밍 언어를 처음 접하거나 프로그래밍 언어에 익숙해지고 싶다면? 코딩 역량을 탄탄하게 길러주는 코딩 기초 트레이닝으로 차근차근 코딩에 대한 기초 감각을 길러 보세요.
school.programmers.co.kr
풀이 날짜 : 2023-09-13
문제 설명
1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다.
네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다.세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다.주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다.어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다.네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습니다.
네 주사위를 굴렸을 때 나온 숫자가 정수 매개변수 a, b, c, d로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.
나의 풀이
def solution(a, b, c, d):
x = [a, b, c, d]
x.sort() # 주사위 리스트 오름차순 정렬
# 1. 네 주사위가 모두 같을 경우
if x[0] == x[3] :
return 1111*a
# 2. 세 주사위가 같을 경우
elif x[0] == x[2] :
return (10 * x[1] + x[3])**2
elif x[1] == x[3] :
return (10 * x[1] + x[0])**2
# 3. 두 개씩 같을 경우
elif x[0] == x[1] and x[2] == x[3] :
return (x[0] + x[3]) * abs(x[0] - x[3])
# 4. 두 개만 같고, 나머지는 각각 다를 경우
elif x[0] == x[1] :
return x[2] * x[3]
elif x[1] == x[2] :
return x[0] * x[3]
elif x[2] == x[3] :
return x[0] * x[1]
# 5. 네 주사위가 모두 다를 경우
else :
return x[0]
728x90
반응형
LIST
'Coding Study > Programmers (Python)' 카테고리의 다른 글
[프로그래머스/파이썬] Lv.0 9로 나눈 나머지 (0) | 2023.09.13 |
---|---|
[프로그래머스/파이썬] Lv.0 글자 이어 붙여 문자열 만들기 (0) | 2023.09.13 |
[프로그래머스/파이썬] Lv.0 간단한 논리 연산 (0) | 2023.09.13 |
[프로그래머스/파이썬] Lv.0 배열 만들기 4 (0) | 2023.09.13 |
[프로그래머스/파이썬] Lv.0 콜라츠 수열 만들기 (0) | 2023.09.13 |