본문 바로가기
알고리즘/완전탐색

[백준][Python] 1487번 물건 팔기

by 임짠짠 2022. 7. 27.
반응형
 

1487번: 물건 팔기

첫째 줄에 최대 이익을 만들어주는 가격을 출력한다. 이익이 최대인 가격이 여러개라면, 가장 낮은 가격을 출력한다. 또, 어떤 가격으로 팔아도 이익을 남길 수 없다면 0을 출력한다.

www.acmicpc.net

 

 

코드

n = int(input())
c_list = []
d_list = []
for i in range(n):
	cost,deli = map(int,input().split())
	c_list.append(cost)
	d_list.append(deli)

c_set = sorted(set(c_list))

max_m = 0 
ans = 0
for i in c_set:
	money = 0
	for j in range(n):
		if i <= c_list[j] and i > d_list[j]:
			money += i-d_list[j]
	
	if max_m < money:
		max_m = money
		ans = i
	
print(ans)

 

설명

주어진 금액들을 set을 이용해 중복을 없애고 오름차순으로 정렬을 해준 뒤 차례대로 해당 가격으로 팔면 얼마만큼의 이익을 남길 수 있는지 확인한다.

 지불할 최대 금액보다 파는 가격이 비싸거나, 팔려는 가격보다 배송비가 더 많이 나간다면 팔지 않는다. 

반응형

댓글