본문 바로가기
알고리즘?/기본2

5. 정다면체

by 몰라닉네임 2023. 5. 5.

*본 문제는 인프런 김태원 강사님의 파이썬 알고리즘 문제풀이 강의에 기반합니다.  

 

문제 정다면체

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

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

 

-입력 설명

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

 

-출력설명

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

 

-입력예제1

4 6

-출력예제1 

5 6 7 

 

풀이 및 생각 

 4면체가 나올 수 있는 값 1 2 3 4

 2. 6면체에서 " 1 2 3 4 5 6 

 합 중 나올 수 있는 값  2 3 4 5 / 3  4 5 6 / 4  5 6 7 / 5 6 7 8 / ...24 개 

 

  3 4 5 6
1 2 3 4 5 5 7
2 3 4 5      
3            
4            

 확률이 높다  -> 중복이 젤 많은 값을 여기다가 넣으면 되는데 이것을 어떻게 센담 ?->

 인덱스 번호랑 같다 . 같으면 인덱스의 값을  ++    (cnt[i+j]+=1)

(구현

 1.이중 for 문 (1부터 n+1까지 ) n , m 두개의 합  ( 표 완성)

 2. max 제일 큰 값을 max에 담고

 3. max와 값이 같은 것을 출력하면 된다. 

 

 


import sys
#sys.stdin=open("input.txt", "rt")

n, m=map(int, input().split())

cnt=[0]*(n*m) # 리스트 크기 할당
max=0

for i in range(1, n+1):
    for j in range(1, m+1):
        cnt[i+j]+=1 ###인덱스의 값 cnt[0]=0

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=' ') #

 

'알고리즘? > 기본2' 카테고리의 다른 글

8. 뒤집은 소수  (1) 2023.05.06
6. 자릿수의 합  (0) 2023.05.05
4. 대표값 eumerate()  (1) 2023.05.04
3. k번째 큰수 set()  (0) 2023.05.04
2. k번째 수  (0) 2023.05.04