반응형
내 풀이
같은 눈이 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문으로 처리할 수 있어야 한다.
고찰
앞으로 이러한 문제를 잘 풀기 위해서는 주어진 문제를 잘 이해하는 것도 있지만 주어진 것을 풀 때, 방법을 생각하고 이를 적절하게 할 필요가 있다. 이러한 능력을 향상시키기 위해서는 앞으로 더 많은 문제를 풀며 어떻게 문제를 풀어나가야 할지 생각해보는 것도 정말 필요해보인다.
반응형
'Coding Test (코딩 테스트)' 카테고리의 다른 글
코딩테스트 8일차(2025.01.22) - 10950번(A+B - 3) (0) | 2025.01.22 |
---|---|
코딩테스트 7일차(2025.01.20) - 2739번(구구단) (0) | 2025.01.20 |
코딩테스트 6일차(2025.01.19) - 2525번 (0) | 2025.01.19 |
코딩테스트 5일차(1)(2024.10.23) - 3문제 (2) | 2024.10.24 |
코딩테스트 4일차(1)(2024.10.22) - 2문제 (1) | 2024.10.23 |