코딩하는 베어브릭
구현 문제 #9. 주사위 게임 본문
*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다.
내 풀이
1. 테스트 케이스만큼 반복문을 돌려서 입력을 받는다.
2. if문을 통해 세 개의 숫자가 같은 경우, 두 개의 숫자가 같은 경우, 모두 다른 경우로 나눠서 상금을 계산한다.
3. 각 사람의 상금을 result배열에 저장하고, 가장 높은 상금을 구한다.
import sys
#sys.stdin=open("input.txt","rt")
n = int(input())
result=[]
for i in range(n):
arr = list(map(int, input().split()))
if arr[0]==arr[1] and arr[0]==arr[2] and arr[1]==arr[2]:
res=10000+arr[0]*1000
elif arr[0]==arr[1]:
res=1000+arr[0]*100
elif arr[0]==arr[2]:
res=1000+arr[0]*100
elif arr[1]==arr[2]:
res=1000+arr[1]*100
else:
res=max(arr)*100
result.append(res)
print(max(result))
강사님 풀이
import sys
sys.stdin=open("input.txt","rt")
n = int(input())
res=0
for i in range(n):
#split함수: 문자열을 특정 구분자를 기준으로 잘라서 리스트로 저장 ex) ['3', '6', '9']
tmp=input().split()
tmp.sort() #가장 큰 값 = c가 되도록 오름차순 정렬
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:
money=c*100
if money>res:
res=money
print(res)
배운 점
1. 가장 큰 값을 구하기 위해서 리스트의 내장함수 max( )도 쓸 수 있지만 sort( )함수를 통해 정렬해서 구하는 방법도 있다.
'알고리즘 > 인프런: 파이썬 알고리즘 문제풀이' 카테고리의 다른 글
| 탐색&시뮬레이션 문제 #1. 회문 문자열 검사 (0) | 2022.05.27 |
|---|---|
| 구현 문제 #10. 점수 계산 (0) | 2022.05.16 |
| 구현 문제 #8. 뒤집은 소수 (0) | 2022.05.16 |
| 구현 문제 #7. 소수 (에라토스테네스 체) (0) | 2022.05.16 |
| 구현 문제 #6. 자릿수의 합 (0) | 2022.05.16 |
Comments