프로그래머스: 주사위 게임3 (Python3)

SIMPLY_DAILY·2025년 4월 15일

1. 문제

네 주사위를 굴렸을 때 나온 숫자가 정수 매개변수 a, b, c, d로 주어질 때, 아래의 조건에 따라 얻게 될 점수를 return 하는 solution 함수 작성하기

2. 조건

  • 네 주사위에서 나온 숫자가 모두 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점
  • 네 주사위에 적힌 숫자가 모두 다르다면? 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻음

3. 출력 예시

예시1. 네 주사위 숫자가 모두 2로 같으므로 1111 × 2 = 2222점을 얻게 된다. (2222를 return함)

예시2. 세 주사위에서 나온 숫자가 4로 같고 나머지 다른 주사위에서 나온 숫자가 1이므로 (10 × 4 + 1)2 = 412 = 1681점을 얻게 된다. (1681을 return함)

예시3. a, d는 6으로, b, c는 3으로 각각 같으므로 (6 + 3) × |6 - 3| = 9 × 3 = 27점을 얻게 된다. (27을 return함)

예시4. 두 주사위에서 2가 나오고 나머지 다른 두 주사위에서 각각 5, 6이 나왔으므로 5 × 6 = 30점을 얻게 된다. (30을 return함)

예시5. 네 주사위 숫자가 모두 다르고 나온 숫자 중 가장 작은 숫자가 2이므로 2점을 얻게 된다. (2를 return함)

4. 코드 구현

  1. [a,b,c,d]를 리스트로 만든 후, 중복값이 있을 경우(duplicate_list)와 없을 경우(not_duplicate_list) 두 가지 리스트로 분류하기
  2. 주어진 조건에 따라 조건문 작성하기
  3. result 반환하기

remove()

리스트에서 특정 값을 제거할 경우 사용하는 함수 [기본 문법: list_name.remove(value)]

value: 리스트에서 삭제하고자 하는 요소의 값
(만약 같은 값이 여러 개 있다면, 가장 첫 번째로 나오는 값 하나만 삭제함)

https://school.programmers.co.kr/learn/courses/30/lessons/181916

0개의 댓글