알고리즘 정복하기!/백준 문제풀이

백준 1246 Python / Greedy

by seokii 2022. 2. 17.
728x90
반응형

문제 링크

https://www.acmicpc.net/problem/1246

 

1246번: 온라인 판매

첫째 줄에 정수 N(1 ≤ N ≤ 1,000)과 M(1 ≤ M ≤ 1,000)이 입력된다. 둘째 줄부터 M+1번째 줄까지 i+1번째 줄에는 Pi(1 ≤ Pi ≤ 1,000,000)가 입력된다.

www.acmicpc.net

 

풀이

n, m = map(int, input().split())
prices = []

for i in range(m):
    prices.append(int(input()))

prices.sort(reverse=True)

select_price = 0
max_profit = 0

for i in range(m):
    if i + 1 > n:
        profit = prices[i] * n
    else:
        profit = prices[i] * (i + 1)
    
    if max_profit < profit:
        select_price = prices[i]
        max_profit = profit

print(select_price, max_profit)

난이도가 어렵지 않은 문제인데 시간이 엄청 걸려서 풀었다.

예외인 경우를 전혀 생각지 못했던 탓이었다.

고객의 수가 달걀의 수보다 많을 때를 생각했어야 했는데 그 예외 사항을 생각지 못했다.

이것 때문에, 맞는데 왜 뭐가 틀린 거지? -> 다른 방법으로 코딩해보기를 반복하다가

시간 초과 에러도 발생하고 계속 틀리기도 하고 그랬다.

앞으로는 예외로 발생할 수 있는 경우를 꼭 생각해보고 문제를 풀어야겠다 후....

 

 

 

728x90
반응형

'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글

백준 3135번 Python / Greedy  (0) 2022.02.19
백준 2407번 Python / Math  (0) 2022.02.18
백준 1629번 Python / Math  (0) 2022.02.17
백준 9237번 Python / Greedy  (0) 2022.02.16
백준 1676번 Python / Math  (0) 2022.02.16

댓글