BOJ - 2476번 주사위 게임 (Python)

woga·2021년 1월 11일
0

python 풀이

목록 보기
9/27
post-thumbnail

문제 출처: https://www.acmicpc.net/problem/2476

난이도

Bronze 3


풀이 방법

조건문을 일일이 걸었다. 근데 처음에는 끝에 두개는 같고 가운데만 다른 경우, 모두 다르다는 조건문을 자꾸 통과해서 괄호를 쳐서 우선순위를 뒀는데도 통과하지 못했다. 그래서 아예 else로 빼니깐 통과했다.


통과 코드


if __name__ == '__main__':
    N = int(input())
    max_money = 0
    for _ in range(N):
        a, b, c = map(int, input().split())
        money = 0
        if a == b == c:
            money = 10000 + (a * 1000)
        elif a == b != c:
                money = 1000 + a * 100
        elif b == c != a:
                money = 1000 + b * 100
        elif a == c != b:
                money = 1000 + c * 100
        else:
            money = max(a, b, c) * 100

        max_money = max(max_money, money)

    print(max_money)

etc

다른 풀이를 보니깐 이렇게 조건문을 다는 것이 아닌 Counter를 이용해서 구별가능한 풀이를 봤다.

from collections import Counter

N = int(input())
prize=[]
for n in range (N):
    dice = list(map(int, input().split()))
    cnt = Counter(dice)
    if 3 in cnt.values():
        prize.append(10000+1000*dice[0])
    elif 2 in cnt.values():
        for i in cnt.keys():
            if cnt[i]==2:
                prize.append(1000+100*i)
    else:
        prize.append(max(dice)*100)

    
print(max(prize))

출처 블로그 링크

profile
와니와니와니와니 당근당근

0개의 댓글