-
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