백준 문제 링크
온라인 판매
- 고객의 가격을 리스트 lst에 넣고, 오름차순으로 정렬한다.
- 조건은 다음과 같다.
- N >= M일 때, i를 0 ~ len(lst)까지, j를 i+1 ~ len(lst)까지 지정해서 서로를 비교해본다.
만약 lst[j]의 값이 lst[i]의 값보다 크다면,
m += lst[i] 하고, dic[lst[i]] = m으로 넣어준다.- N < M일 때, i를 0 ~ len(lst)까지 지정해 살펴보면서,
팔 수 있는 달걀의 개수만큼 lst를 살펴본다.
예를 들어, 팔 수 있는 달걀이 2개, lst = [2,2,5]라면
[2,2] , [2,5], [5] 이런식으로 살펴보는 것이다.
그래서 m = len(lst[i:i+N]) * lst[i]로 정하고, dic[lst[i]] = m으로 넣어준다.
위 예시로 보면 dic[2] = 4, dic[5] = 5인 것이다.
- 마지막으로 dic을 살펴보면서 value가 가장 큰 값이면 인덱스와 value를 반환한다. 끝!
N,M = map(int, input().split())
lst = []
for _ in range(M):
lst.append(int(input()))
lst = sorted(lst)
dic = {}
if N >= M:
for i in range(len(lst)):
m = lst[i]
for j in range(i+1, len(lst)):
if lst[i] <= lst[j]:
m += lst[i]
dic[lst[i]] = m
else:
for i in range(len(lst)):
m = len(lst[i:i+N]) * lst[i]
dic[lst[i]] = m
max_index, max_value = 0,0
for index, value in dic.items():
if value == max(dic.values()):
max_index, max_value = index, value
print(max_index, max_value)