문제출처
- 규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다.
- 규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다.
- 규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다.
- N 명이 주사위 게임에 참여하였을 때, 가장 많은 상금을 받은 사람의 상금을 출력하는 프로그램 을 작성하시오
풀이코드
import sys
N = int(input())
# 상금 초기화
res =0
for i in range(N):
tmp = input().split()
#가장 큰 숫자 찾기
tmp.sort()
a,b,c = map(int, tmp)
# 같은 눈이 3개
if a == b and b==c:
money = 10000+a*1000
# 같은 눈이 2개 / 정렬을 했기 때문에 a보다 작을 수가 없음
elif a ==b or a==c:
money = 1000+a*100
elif b == c:
money = 1000+b*100
else:
money = c*100
if money>res:
res = money
print(res)
코드설명
- 참여하는 사람수의 입력값 대입
- N의 수 만큼 각각의 원소가 split 돼서 tmp 임시변수에 저장
- sort로 정렬후 a,b,c에 각각 대입한 다음 원소 비교
- 가장 많은 상금을 받은 사람의 상금을 출력해야하기 때문에 res로 초기화했던 변수와 비교후 print
기타사항
n=int(input())
# 빈 리스트
tot=[]
for i in range(n):
tmp=list(map(int,input().split()))
tmp.sort()
a, b, c = tmp
if a==b==c:
tot.append(10000+a*1000)
elif a==b or a==c:
tot.append(1000+a*100)
elif b==c:
tot.append(1000+b*100)
else:
tot.append(c*100)
# max로 가장 높은 금액 출력
print(max(tot))
반응형