코딩 테스트/백준

[Python] 백준 2480 주사위 세개

위시리 2024. 12. 19. 13:04

 

문제 분석

  • 1~6 주사위 3개
    1. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.
    2. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
    3. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.1~6 주사위 3개
  • 상금 계산

 

코드 설계

  1. 주사위 3개 입력 (a,b,c) : list로 입력받아서
  2. 같은 주사위 개수 확인 (set ?)
  3. set 함수 개수가 1이면 3개가 모두 같은 경우
  4. set 함수 개수가 2개이면 2개가 같은 경우
    1. 2개만 같을 때 같은 주사위 찾기 : 무식하게 다 비교?
  5. set 함수 개수가 3이면 모두 다 다른 경우
    1. 가장 큰 값 찾기

 

정답 코드

import sys
input = sys.stdin.readline

dices = list(map(int, input().split()))
dices.sort() # 정렬해서 겹치는 주사위 개수 빨리 찾기

if len(set(dices)) == 1 : # 모두 같은 값
    print(10000 + dices[0]*1000)
elif len(set(dices)) == 2 :
    # 겹치는 수 찾기
    if dices[0] == dices[1] :
        print(1000 + dices[0] * 100)
    elif dices[0] == dices[2] :
        print(1000 + dices[0] * 100)
    else :
        print(1000 + dices[1] * 100)
else :
    print(max(dices) * 100)

 

다른 사람 코드 1

a, b, c = map(int, input().split())

if a == b == c:
    print(10000+a*1000)
elif a == b or a == c:
    print(1000+a*100)
elif b == c:
    print(1000+b*100)
else:
    print(100 * max(a,b,c))