CODING TEST/Beakjoon
[백준 / 2480 / python] 주사위 세개
더라
2023. 8. 31. 23:32
728x90
2480번: 주사위 세개
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개
www.acmicpc.net
입력 | 자연수 3개 |
출력 | 자연수 1개(상금) |
풀이
num_list = list(map(int, input().split()))
check_list=[0,0,0,0,0,0]
for i in num_list:
check_list[i-1]+=1
check_num = max(check_list)
num_index=1 + check_list.index(check_num)
if check_num==3:
print(10000+num_index*1000)
elif check_num==2:
print(1000+num_index*100)
else:
num=max(num_list)
print(num*100)
1) 자연수 3개를 입력 받아 리스트로 저장한다.
2) 중복된 수 개수를 저장할 리스트 check_list를 만든다.
3) 입력 받은 자연수 중에 수가 몇개씩 있는지 check_list에 저장한다.
4) check_list에서 가장 큰 수를 찾는다. 이는 중복된 수가 3, 2, 1 중에 무엇인지 알 수 있다.
가장 큰수가 든 인덱스를 찾는다. 찾은 인덱스+1을 하면 중복된 숫자가 무엇인지 알 수 있다.
5) 중복된 수가 3인 경우, 2인 경우, 1인 경우를 조건문으로 나누어 계산한다.
5.1) 중복된 수가 1인 경우각각 다른 숫자 중 가장 큰 수를 찾아 계산한다.
잡담
처음에는 조건식과 논리연산자로 코딩을 하려했는데 고민하다가 방향을 바꿔 위의 코드가 되었다.
다른분들의 코드를 보니 처음하려했던 논리연산자를 사용해 코딩한 것을 볼 수있었다.
논리 연산자를 통해 푸는 법이 궁금한 분들은 백준에서 다른 분들 코드를 참고하면 좋을 것 같다.
728x90