백준 2480 주사위 세개 문제 리뷰
🐒 문제
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 함수를 알게 되어서 한번 사용해봤다
백준은 모범답안이 따로 없었다.
Author And Source
이 문제에 관하여(백준 2480 주사위 세개 문제 리뷰), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mauserne/백준-2480-주사위-세개-문제-리뷰저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)