본문 바로가기
챌린지/코딩 테스트 30일 챌린지

[코딩 테스트 30일 챌린지] : 05

by 오주현 2022. 6. 16.
반응형
코딩 테스트 30일 챌린지

푼 문제 수 : 1
문제 요약

정n면체, 정m면체 주사위를 던져 나올 수 있는 눈의 합 중 가장 높은 확률의 값을 출력

여러개인 경우 오름차순 출력

 

입, 출력 예제

입력 :

4 6

 

출력:

5 6 7

 

풀이
n, m = map(int, input().split())
cnt = [0]*(n+m+3)

max=-2147000000

for i in range(1, n+1):

    for j in range(1, m+1):
        cnt[i+j] += 1
      
for i in range(n+m+1):

    if cnt[i]>max:
        max=cnt[i]
        
for i in range(n+m+1):

    if cnt[i]==max:
        print(i, end=' ')

n과 m의 합의 값을 담아둘 리스트를 만들고 n과 m을 더하고 3만큼 추가 크기를 준다.

 

max에는 최소 값을 넣어준다.(정수형 최소값)

 

cnt에 n과 m의 합을 인덱스로 합이 같을 때 1씩 증가한다.

 

최대 값을 찾기 위해 max에 누적시킨다.(가장 작았던 값에서 점점 비교해서 큰 값으로 대체해 간다.)

 

최대 값이 같은 게 여러개 인 경우 모두 출력을 위해 최대한 같은 n+m의 합을 찾아 출력한다.


 

 

반응형

댓글