Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[백준-Python] 2480번: 주사위 세개 본문

🥧 Python/⚙️ 코딩테스트

[백준-Python] 2480번: 주사위 세개

썸머몽 2023. 2. 15. 15:39
728x90
 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 

풀이

1~6의 눈을 가진 주사위 3개가 있다.

1. 같은 눈이 3개 나오면 10000+같은눈*1000

2. 같은 눈이 2개 나오면 1000+같은눈*100

3. 다 다른 눈이 나오면 가장 큰 눈*100

 

입력할 첫째 줄에는 주사위 3개의 눈이 각각 나오면 된다

 

if문으로 풀 수 있는데 마찬가지로 조금 지저분해진다.

같은 눈 2개의 경우 a == b != c / b == c != a / c == a != b 3가지 경우를 다 구해야 해서

코드 1번처럼 리스트와 인덱스로 풀어봤다.

 

먼저 리스트로 주사위 수 3개를 한 줄에 받는다.

3개니까 받고 나면 [1, 2, 3] 이런 식일텐데 각 인덱스에 새로운 문자를 부여해준다.

 

1번은 다 같게 해주면 되고,

2번의 경우에는 리스트를 한번 정렬해준다.

이전 글에서도 3개라서 내림/오름해도 상관 없었는데 똑같다.

그렇게 해주면 1번째 인덱스(2번째 요소)는 앞 또는 뒤와 같은 눈일 것이다.

3번째 가장 큰 눈을 구할 때는 max를 써주면 된다.

 

if문에서 조금씩 벗어나보자.

 

코드

dice = list(map(int, input().split()))
a = dice[0]
b = dice[1]
c = dice[2]

if a == b == c :
    print(10000+(a*1000))
elif a == b != c or b == c != a or c == a != b :
    dice.sort()
    print(1000+(dice[1]*100))
elif a != b != c :
    print(100*max(dice))
a, b, c = map(int, input().split())

if a == b == c :
    print(10000+(a*1000))
elif a == b != c :
    print(1000+(100*a))
elif b == c != a:
    print(1000+(100*b))
elif c == a != b:
    print(1000+(100*c))
elif a != b != c:
    print(max(a, b, c)*100)
728x90