가자미의 개발이야기
[알고리즘] 두 개의 정다면체 주사위 본문
#문제:
두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서 나올 수 있는 눈의 합 중 가장 확 률이 높은 숫자를 출력하는 프로그램을 작성하세요. 정답이 여러 개일 경우 오름차순으로 출력합니다.
▣ 입력설명
첫 번째 줄에는 자연수 N과 M이 주어집니다. N과 M은 4, 6, 8, 12, 20 중의 하나입니다.
▣ 출력설명
첫 번째 줄에 답을 출력합니다.
▣ 입력예제 1
4 6
▣ 출력예제 1
5 6 7
import sys
#sys.stdin=open("input.txt", "rt")
N, M = map(int, input().split())
arr=[]
arr2=[]
arrDic={}
for i in range(1,N+1):
for j in range(1, M+1):
arr.append(i+j)
arr.sort()
arrSet=list(set(arr))
for i in range(len(arrSet)):
arrDic[arrSet[i]]=arr.count(arrSet[i])
valueList=list(arrDic.values())
valueList.sort(reverse=True)
for j in arrSet:
if (arrDic.get(j)==valueList[0]):
arr2.append(j)
arr2.sort()
for i in arr2:
print("%d" %(i),end=' ')
#몰랐거나 검색했던 내용
1. 딕셔너리 선언 및 추가
파이썬에서는 key : value 쌍의 집합인 딕셔너리를 지원한다.
arrDic={}로 선언하고
arrDic[key]=value로 추가한다.
2. 딕셔너리 밸류 추출
arrDic.values()를 하면 객체의 형태로 밸류들만 모여 반환한다.
이를 리스트로 변환해야 인덱싱이나 정렬이 가능하다.
3. 밸류 얻기
arrDic.get(key)로 구하거나
arrDic[key]로 구할 수 있다.
'Computer Science > 알고리즘' 카테고리의 다른 글
[프로그래머스] Lv1. 로또의 최고 순위와 최저 순위 (0) | 2021.06.18 |
---|---|
[알고리즘] 자릿수의 합 (0) | 2021.05.18 |
[알고리즘] 대표값 구하기 (0) | 2021.05.16 |
[알고리즘] K번째 큰 수 (0) | 2021.05.16 |
[알고리즘] 약수 k번째 약수 구하기 (0) | 2021.05.11 |