Skip to content

Conversation

@Ukj0ng
Copy link
Contributor

@Ukj0ng Ukj0ng commented Oct 21, 2025

🧷 문제 링크

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

🧭 풀이 시간

45분

👀 체감 난이도

✏️ 문제 설명

제시된 카드보다 큰 값 중 제일 작은 값을 제시하라.

🔍 풀이 방법

  1. 이분탐색만 사용
    이분탐색을 통해 제시된 카드 중 제일 큰 값의 인덱스를 찾고, used[] 배열을 사용해 찾은 인덱스부터 M-1까지 탐색해 사용되지 않은 카드를 찾아서 출력
  2. 이분탐색 + 분리집합
    분리집합을 통해, 사용한 카드는 다음 사용 가능한 카드로 연결한다. 이분탐색을 통해 제일 큰 값의 인덱스를 찾고 해당 카드와 연결된 사용할 수 있는 카드를 find()함수로 찾아서 출력

⏳ 회고

Union은 일반적으로 양방향 연결인데, 이 문제에선 일방향 연결이 필요했다. 따라서, uf[x] = y ’x를 사용했으니 다음엔 y로 가라’가 맞다. 이분 탐색을 너무 오랜만에 해서, 헷갈렸다. result가 필수가 아니라 left를 반환하는 것만으로도 충분했다.

@ShinHeeEul ShinHeeEul merged commit 31e4ed8 into main Oct 21, 2025
1 check passed
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.

3 participants