CODING TEST/Beakjoon

[백준 / 2480 / python] 주사위 세개

더라 2023. 8. 31. 23:32
728x90

백준 - (2480) 주사위 세개

 

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