코딩하는 베어브릭

구현 문제 #9. 주사위 게임 본문

알고리즘/인프런: 파이썬 알고리즘 문제풀이

구현 문제 #9. 주사위 게임

bearbrick 2022. 5. 16. 18:46

*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다.

 

 

 

내 풀이

 

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( )함수를 통해 정렬해서 구하는 방법도 있다.

Comments