Skip to content

Conversation

@03do-new30
Copy link
Contributor

🧷 문제 링크

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

🧭 풀이 시간

30분

👀 체감 난이도

✏️ 문제 설명

  • N×N인 배열 A를 만든다. A[i][j] = i×j 이다.
  • 각 수들을 일차원 배열 B에 넣고 오름차순 정렬했을 때, B[k]의 값을 구한다.
  • N <= 10^5
  • K <= min(10^9, N^2)

🔍 풀이 방법

  • N의 최대값이 10^5이고, k의 최대값은 10^9까지 가능 -> 직접 배열을 만들고 정렬하는 것은 불가능
  • 정답이 될 수 있는 수를 이분탐색하면서 찾아가는 방법 채택
  • 정답 후보 수 mid가 몇 번째 수인지 확인하려면 mid보다 작거나 같은 수의 개수를 센다.
    • sum(min(mid // i, N)) (1 ≤ i ≤ N)으로 구할 수 있다. (각 행 별로 mid보다 작거나 같은 수를 구하는 방식)

⏳ 회고

  • 범위가 넘 크다 싶으면 이분탐색

@03do-new30 03do-new30 added the hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때 label Mar 19, 2025
@ShinHeeEul ShinHeeEul merged commit 8272e00 into main Mar 19, 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