ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • section2.5 정다면체
    알고리즘 2022. 10. 22. 17:52

    두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확률이 높은 숫자를 출력하는 프로그램을 작성하세요. 정답이 여러 개일 경우 오름차순으로 출력합니다. 

     

     

     

    import sys
    sys.stdin = open("input.txt", "rt")
    n, m = map(int, input().split())
    
    '''
    2차원 리스트 만들어서 출력
    list = [cnt][sum]
    '''
    
    sumList = []
    cnt = 0
    fList = []
    
    for i in range(n):
        for j in range(m):
            sumList.append(i+j+2)
    
    for x in range(n+m+1):
        for y in sumList:
            if x == y:
                cnt += 1   
        fList.append([cnt, x])
        cnt=0
    
    for x in range(len(fList)):
        if fList[x][0] == max(fList)[0]:
            print(x, end=' ')

     

    정답

     

    import sys
    sys.stdin = open("input.txt", "rt")
    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=' ')

     

    list에 [cnt, sum] 이렇게 넣는 것보다 풀이에처럼 cnt리스트와 인덱스를 이용하는 게 더 편리해 보인다.

    728x90

    '알고리즘' 카테고리의 다른 글

    section2.7 소수(에라토스테네스 체)  (0) 2022.10.24
    section2.6 자릿수의 합  (0) 2022.10.22
    section2.4 대표값  (0) 2022.10.22
    section2. 최솟값 구하기  (1) 2022.10.21
    section2.3 K번째 큰 수  (0) 2022.10.21
Designed by Tistory.