반응형
밑의 링크는 백준에서의 문제 링크입니다.
파이썬 코드와 결과입니다.
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 첫째 줄에 3개의 눈을 빈 칸을 사이에 두고 입력합니다.
# 주사위의 눈이므로 1부터 6까지입니다.
# 각각 정수형으로 변환하고 리스트 변수에 넣어줍니다.
spots = list(map(int, stdin.readline().split(' ')))
# 3개의 눈이 모두 같다면
if spots[0] == spots[1] == spots[2]:
# 10000 + (같은 눈) * 1000을 출력합니다.
print(10000 + spots[0] * 1000)
# 3개의 눈이 모두 다르다면
elif spots[0] != spots[1] and spots[0] != spots[2] and spots[1] != spots[2]:
# (가장 큰 눈) * 100을 출력합니다.
print(max(spots) * 100)
# 3개의 눈 중 2개만 같다면
elif len(set(spots)) == 2:
# 같은 눈을 저장할 변수를 선언합니다.
same = None
# 첫 번째 눈과 두 번째 눈이 같은 경우
if spots[0] == spots[1]:
# same에 첫 번째 눈의 값을 저장합니다.
same = spots[0]
# 첫 번째 눈과 세 번째 눈이 같은 경우
elif spots[0] == spots[2]:
# same에 첫 번째 눈의 값을 저장합니다.
same = spots[0]
# 두 번째 눈과 세 번째 눈이 같은 경우
elif spots[1] == spots[2]:
# same에 두 번째 눈의 값을 저장합니다.
same = spots[1]
# 1000 + (같은 눈인 same의 값) * 100을 출력합니다.
print(1000 + same * 100)
첫 번째로 제출했을 때 3개의 눈이 모두 다른 경우의 조건을
spot[0] != spot[1] != spot[2]으로 넣었습니다.
그리고 틀렸습니다 결과를 보게 되었습니다.
파이썬에서는 크기를 비교하는 조건을 넣을 때 다른 언어와는 달리
0 <= (변수) <= 100과 같이 넣어도 문제가 발생하지 않습니다.
그래서 서로 다른 경우인 !=도 크기 비교와 같이 저런 식으로 설정해도 되는 줄 알았는데
질문에 있는 내용을 찾아보니 그런 식으로 넣으면 안된다고 하였습니다.
그래서 다른 언어처럼 수정해서 제출해보니 맞았습니다 결과를 볼 수 있었습니다.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글