1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.
같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.
같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.
첫째 줄에 3개의 눈이 빈칸을 사이에 두고 각각 주어진다.
첫째 줄에 게임의 상금을 출력 한다.
입력 예시
3 3 6
출력 예시
1300
a, b, c = map(int,input().split())
if a == b:
if a == c:
print(10000+a*1000)
else:
print(1000+a*100)
elif a == c:
print(1000+a*100)
elif b == c:
print(1000+b*100)
else:
x = [a,b,c]
x.sort()
print(x[2]*100)
#^^^print(max(x)*100) 가능!
조건문을 좀 더 간단하게 쓰고싶었는데 적당한 방법을 못찾았다.
3번째 조건에서 가장 큰 수를 찾아야하는데 나는 요소들을 배열에 넣어서 정렬하고 가장 뒤의 값을 찾았는데
다른 사람들의 풀이를 보니 max함수라는게 있었다
list나 튜플, 문자열 같은 iterable 자료형을 넣으면 가장 큰 요소를 리턴한다고 한다.
함수에 자료형을 여러개 넣으면 0번째 요소부터 비교하여 큰 자료형을 리턴하는 것 같다
반대로 min함수도 있다.
a = list(map(int,input().split()))
# 세 주사위가 같을때
if a[0] == a[1] == a[2]:
print(10000+a[0]*1000)
else:
for i in range(2):
if a.count(a[i]) == 2: # 두 주사위만 같을 떄
print(1000+a[i]*100)
break
elif a[0] != a[1] != a[2]: # 세 주사위가 서로 다를때
print(max(a)*100)
break
count 함수를 알게 되어서 한번 사용해봤다
백준은 모범답안이 따로 없었다.