[도전 2] 조건문

Tino-Kim·2023년 1월 27일
0

[Coding Test] 준비하기

목록 보기
18/20
post-thumbnail

[도전 2] 조건문

주의할 점 1. 파이썬은 위에서 아래로 실행된다.

(예시) 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))
profile
알고리즘과 데이터 과학과 웹 개발을 공부하는 대학생

0개의 댓글