Skip to content

Conversation

k0000k
Copy link
Member

@k0000k k0000k commented May 20, 2025

✅ 2470 | 두 용액 | 난이도: 골드 5 | 유형: 정렬, 그리디?

📝 문제 설명

가장 절댓값이 가까운 용액을 더한 경우만 정답의 후보가 됩니다. 그 중 최소를 찾습니다.

💡 풀이 설명

  • 왜 이분탐색인지 모르겠습니다ㅠ
  • 절댓값 작은 순으로 정렬합니다. 그러면 절대값이 가장 인접한 데이터끼리의 합만 비교하면 됩니다.

✅ 20444 | 색종이와 가위 | 난이도: 골드 5 | 유형: 이분탐색

📝 문제 설명

시간제한이 0.01초입니다. 이분탐색을 활용하여 정확히 k를 만족하는 케이스가 있는지 찾습니다.

💡 풀이 설명

  • 이 문제에서 n은 int 범위이고, k는 long입니다. 하지만 n을 int로 잡으면 중간값을 계산하는 과정에서 오버플로우가 발생합니다. 이걸 못잡아서 시간이 오래 걸린 문제입니다 😢 이럴땐 그냥 맘편하게 둘다 long으로 잡는게 가장 안전한것 같습니다!

✅ 1477 | 휴게소 세우기 | 난이도: 골드 4 | 유형: 이분탐색

📝 문제 설명

이분탐색으로 조건을 만족하는 최솟값을 찾습니다.

💡 풀이 설명

  • 최댓값의 최소 또는 최솟값의 최대는 굉장히 유명한 이분탐색 유형입니다. 분명 그건 아는데.. 역시 알고리즘은 오래 쉬면 안되겠군요. 구현 아이디어 떠올리는데 한참 걸렸습니다.
  • 이분탐색으로 임의의 mid 값이 최댓값이 될수있는지를 탐색하면 됩니다.

@k0000k k0000k self-assigned this May 20, 2025
@k0000k k0000k marked this pull request as draft May 21, 2025 07:45
@k0000k k0000k requested a review from choyunju May 27, 2025 07:05
@k0000k k0000k marked this pull request as ready for review May 27, 2025 07:05
// m번 이하로 쪼개서 diff의 최댓값이 val이 되도록 만들수있는지?
int cnt = 0;
for (Integer num : diff) {
while (num > val) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

나눗셈 사용하면 쉽게 구할 수 있습니다~!~!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

바로 return 하는 방법을 순간 생각을 못했네요,,나머지는 저랑 비슷하게 푸셨어요! 수고하셨습니다!


class Liquid implements Comparable<Liquid> {
int val;
int abs;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

제 코드에서도 나와있듯이 용액의 합을 음수냐 양수냐에 따라 구분하면 굳이 절댓값을 구하시지 않아도 됩니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants