Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 20, 2025

🧷 문제 링크

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

🧭 풀이 시간

30분

👀 체감 난이도

✏️ 문제 설명

  • 정육점에 고기 $N$덩어리를 팔고 있다.
  • 각 덩어리는 무게와 가격이 존재하며, 어떤 덩어리를 사면 그 덩어리보다 싼 가격의 모든 고기를 공짜로 받을 수 있다.
  • 무게 $M$ 이상의 고기를 사기 위한 최소 비용을 구해보자.

🔍 풀이 방법

[사용한 알고리즘]

  • 그리디
  • 정렬

  • 가격 순으로 덩어리들을 정렬해 놓자.
  • i번째 덩어리를 사면, 같은 가격을 제외한 나머지 고기들을 모두 가질 수 있다. -> 가격이 같은 덩어리들은 따로따로 구매해야 한다.
  • 정렬한 배열을 한 번 돌면서 따로따로 샀을 때의 가격과 더 비싼 고기를 샀을 때를 매번 비교하며 최솟값을 찾아준다.

⏳ 회고

  • 처음엔 같은 가격이 주어지는 경우를 생각하지 않고 짜서 냈다가 틀렸다.
  • 고치고 나서 unsigned int형으로 모두 바꿔주었는데, -1이 4294967295로 출력되어서 틀렸다.
  • long long으로 바꾸고 냈는데 또 틀렸다.
  • 정렬 기준을 가격의 오름차순 -> 무게의 내림차순으로 바꿔주니 맞았다.

@oncsr oncsr added the hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때 label Feb 20, 2025
@ShinHeeEul ShinHeeEul merged commit 0929b93 into main Feb 20, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants