코딩 테스트/백준
[Python] 백준 2480 주사위 세개
위시리
2024. 12. 19. 13:04
문제 분석
- 1~6 주사위 3개
- 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.
- 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
- 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.1~6 주사위 3개
- 상금 계산
코드 설계
- 주사위 3개 입력
(a,b,c): list로 입력받아서 - 같은 주사위 개수 확인 (set ?)
- set 함수 개수가 1이면 3개가 모두 같은 경우
- set 함수 개수가 2개이면 2개가 같은 경우
- 2개만 같을 때 같은 주사위 찾기 : 무식하게 다 비교?
- set 함수 개수가 3이면 모두 다 다른 경우
- 가장 큰 값 찾기
정답 코드
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))