본문 바로가기
Python/알고리즘

[Python/알고리즘] 정다면체

by 기록하는_사람 2022. 10. 21.

문제

두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확률이 높은 숫자를 출력하는 프로그램을 작성하세요.

정답이 여러 개일 경우 오름차순으로 출력합니다.

 

입력

첫 번째 줄에는 자연수 N과 M이 주어집니다. N과 M은 4, 6, 8, 12, 20 중의 하나입니다.

4 6

 

출력

첫 번째 줄에 답을 출력합니다.

5 6 7

 

N, M = map(int, input().split())

d = {}
for i in range(1, N + 1):
    for j in range(1, M + 1):
        if i + j in d.keys():
            d[i + j] += 1
        else:
            d[i + j] = 1

max = 0
li = []
for i in d.items():
    if i[1] > max:
        li = []
        li.append(i[0])
        max = i[1]
    elif i[1] == max:
        li.append(i[0])

for i in li:
    print(i, end=" ")

 

N, M = map(int, input().split())

cnt = [0] * (N + M + 3)

for i in range(1, N + 1):
    for j in range(1, M + 1):
        cnt[i + j] = cnt[i + j] + 1

max = cnt[0]
for i in cnt:
    if i > max:
        max = i

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=" ")

댓글