문제 출처
두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서
나올 수 있는 눈의 합 중 가장 확률이 높은 숫자를 출력하는 프로그램을 작성하세요.
정답이 여러 개일 경우 오름차순으로 출력합니다
풀이 코드
n, m = map(int, input().split())
cnt = [0]*100
for i in range(1, n+1):
for j in range(1, m+1):
cnt[i+j]+=1
max = 0
for a, b in enumerate(cnt):
if b > max:
max = b
for a, b in enumerate(cnt):
if max == cnt[a]:
print(a, end=' ')
코드 설명
- cnt를 리스트로 만듬
- i와 j 주사위 조합으로 눈의 합을 카운팅 (3이 몇개 나오는지, 4가 몇개 나오는지)
- enumerate 함수를 사용해서 인덱스와 값을 찾아 빈도의 수가 최대인 최대값 찾기
- enumerate 함수를 사용해서 최대값의 인덱스 찾기
기타 사항
for i in range(len(n)):
int has no len()
n, m = map(int, input().split())
cnt = [0]*100
# for i in range(len(n)):
# int has no len()
for i in range(1, n+1):
for j in range(1, m+1):
cnt[i+j]+=1
max = 0
for i in range(len(cnt)):
if cnt[i]> max:
max =cnt[i]
for i in range(len(cnt)):
if max == cnt[i]:
print(i, end = ' ')
enumerate 함수를 잘 사용하자.
반응형