본문 바로가기
Coding Test (코딩 테스트)

코딩테스트 6일차(2025.01.19) - 2480번(주사위 세개)

by BioLearner 2025. 1. 20.
반응형

내 풀이

같은 눈이 3개가 나오면 10000 + (같은 눈) * 1000

같은 눈이 2개만 나오는 경우 1000 + (같은 눈) * 100

모두 다른 눈이 나오는 경우 (그 중 가장 큰 눈) * 100 

 

3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램 작성

 

A, B, C = map(int, input().split())

# 같은 눈 3개가 나오는 경우
if (A == B, B == C):
    acquired_money = 10000 + A * 1000
    print(acquired_money)
    
# 같은 눈 2개가 나오는 경우
elif (A == B):
    acquired_money = 100 + A * 100
    print(acquired_money)
    
elif (B == C):
    acquired_money = 100 + B * 100
    print(acquired_money)
        
elif (A == C):
    acquired_money = 100 + A * 100
    print(acquired_money)

# 모두 다른 눈이 나오는 경우
else:
    acquired_money = max(A, B, C) * 100
    print(acquired_money)

결과: 틀림

정답

# 입력을 받는다
A, B, C = map(int, input().split())

# 같은 눈 3개가 나온 경우
if A == B and B == C:
    print(10000 + A * 1000)

# 같은 눈 2개가 나온 경우
elif A == B or B == C or A == C:
    if A == B or A == C:
        print(1000 + A * 100)
    else:
        print(1000 + B * 100)

# 모두 다른 눈이 나온 경우
else:
    print(max(A, B, C) * 100)

 

틀린 이유

같은 눈 2개가 나오는 경우 처리 방식을 잘못 처리하였다. 중복되는 처리로 이어질 수 있다. 

 

같은 눈 2개"가 나오는 경우는 3가지가 있을 수 있다.

 

A와 B가 같고, C는 다를 때

B와 C가 같고, A는 다를 때

A와 C가 같고, B는 다를 때

 

이 조건을 하나의 elif문으로 처리할 수 있어야 한다.

 


고찰

앞으로 이러한 문제를 잘 풀기 위해서는 주어진 문제를 잘 이해하는 것도 있지만 주어진 것을 풀 때, 방법을 생각하고 이를 적절하게 할 필요가 있다.  이러한 능력을 향상시키기 위해서는 앞으로 더 많은 문제를 풀며 어떻게 문제를 풀어나가야 할지 생각해보는 것도 정말 필요해보인다. 

 

반응형