우선 a,b,c = list(map(int, input().split()))를 사용하시면 굳이 리스트에 넣어주실 필요가 없게됩니다. 그리고 리스트의 변수명으로 list를 사용하셨는데 내장함수로 list()가 있으니 다른 이름을 사용하는 것을 추천드립니다.
- 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다
- 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
- 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.
1번 경우는 if문에서 잘 작성하신 것 같습니다. if문의 조건식 코드를 더 간결하게 a==b and b==c로 바꾸실 수 있습니다.
2번 경우 즉 a==b!=c, a!=b==c, c==a!=b인 경우에 대해서는 elif 문의 조건식과는 다릅니다.
elif문의 조건식은 a!=b!=c로 세 수가 모두 다른 경우입니다. 따라서 다음과 같이 코드를 작성하시거나
elif a == b :
sum = 1000 + a * 100
elif b == c :
sum= 1000 + b * 100
elif c == a :
sum = 1000 + c * 100
작성자님 코드의 4번째 줄에서 정렬을 해두었기 때문에 세 수가 모두 같은 경우는 위의 if문에서 실행되었을 것이고, elif문까지 온 경우는 적어도 한 수는 다른 수와 다른 경우일 것입니다. 그리고 거기서 아래 elif문의 조건식인 a==b or b==c에 걸리는 경우는 [x,x,y] 혹은 [x,y,y]로만 나타나고 가운데 수는 항상 같은 눈이 나온 수니
elif list[0]==list[1] or list[1]==list[2]:
sum = 1000 + (list[1]*100)
으로 작성하셔도 될 것 같습니다.
3번 경우인 a!=b!=c는 작성자님 코드의 elif문에서 사용하신 a!=b and a!=c and b!=c를 사용하시면 될 것 같습니다. 또한 이 리스트는 정렬되어있기 때문에 가장 큰 수는 리스트의 마지막에 올 것이고 따라서
else :
sum = list[-1] * 100
이 될 것입니다. 마지막으로 결과를 print(sum)을 통해 출력해주시면 될 것입니다.
참고로 리스트의 최대값 혹은 최소값을 구하고 싶으시면 max()와 min()함수에 대해 알아보시는 것을 추천드립니다.
궁금한 사항 있으시면 다시 질문해주시길 바랍니다.
minjon3757 1년 전
어디서 틀린걸까요? 찾아주실 수 있나요?