(예시) 2480번 : 주사위 세개
위에서 아래로 수행되기 때문에, 3개 모두 같은 경우 -> 2개 같은 경우 -> 모두 다른 경우 순서로 코드를 짰다.
# 더 짧게 코드를 작성하기.
D1, D2, D3=map(int, input().split())
def reward(D1, D2, D3):
if D1==D2==D3:
return 10000+D1*1000
elif (D1==D2) or (D1==D3):
return 1000+D1*100
elif D2==D3:
return 1000+D2*100
else:
return max(D1, D2, D3)*100
print(reward(D1, D2, D3))
이게 왜 틀린 풀이인지 잘 모르겠다.
else 뒤에는 어떤 조건도 올 수 없다. else 자체가 위의 조건을 뺀 나머지 모든 경우를 지칭하기 때문에 바로 수행되는 코드가 나온다. 그래서 else 뒤에 if와 elif 조건을 넣어줄 수 없다.
## 틀린 풀이 : else 뒤에 또 조건이 나올 수 없다.
# 같은 눈 3개 -> 1000 + 같은 눈 x 1000
# 같은 눈 2개 -> 1000 + 같은 눈 x 100
# 모두 다른 눈 -> 제일 큰 눈 x 100
D1, D2, D3=map(int, input().split())
def reward(D1, D2, D3):
if D1==D2==D3:
return 10000+D1*1000
elif D1!=D2!=D3:
return max(D1, D2, D3)*100
else: # 같은 눈이 2개인 경우
if (D1==D2) or (D1==D3):
return 1000+D1*100
elif D2==D3:
return 1000+D2*100
print(reward(D1, D2, D3))