문제
- n명이 3번의 주사위를 돌려 가장 큰 금액을 받는 경우의 금액을 출력해라
- 같은 숫자 3개 나온 경우 = 10000 + (나온 숫자 * 1000)
- 같은 숫자 2개 나온 경우 = 1000 + (같은 숫자 * 100)
- 모두 다 다른 숫자 = 100 * (나온 수 중에 제일 큰 수)
문제풀이
import sys
sys.stdin = open("input.txt", "r")
n = int(input())
res = 0
for i in range(n):
tmp = input().split()
tmp.sort()
#정렬한 문자를 숫자화 시켜서 mapping
a,b,c = map(int,tmp)
if a == b and b == c:
money = 10000 + (a*1000)
elif a==b or a == c:
money = 1000 + (a*100)
elif b == c:
money = 1000 + (b*100)
else:
#다 다른 수일 때 c가 오름차순으로 정렬해서 제일 큼.
money = c * 100
if money>res:
res=money
print(res)
- 주사위 숫자를 문자열 list로 입력 받은 뒤 정렬해준다.(오름차순으로)
- 던진 주사위 숫자를 각각의 변수로 mapping 해준다.
- 2개가 같은 경우를 두가지 경우로 나눈 이유는 간단하다. 동일한 수가 무엇인지를 알기 위해서다.
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[탐색][시뮬레이션] - 회문 문자열 검사(String) (0) | 2022.07.01 |
---|---|
점수 계산 (0) | 2022.06.30 |
뒤집은 소수 (0) | 2022.06.30 |
소수(에라토스테네스 체) (0) | 2022.06.30 |
자릿수의 합 (0) | 2022.06.30 |