문제 링크
설명
- 크기가 3×3인 배열 A가 주어집니다. 배열 A의 각 요소는 A[i][j] = i×j로 정의됩니다. 즉, 배열의 각 위치에는 행과 열의 곱이 저장합니다.
- 배열 A를 이루는 요소
- 1행: 1×1, 1×2, 1×3 → 1, 2, 3
- 2행: 2×1, 2×2, 2×3 → 2, 4, 6
- 3행: 3×1, 3×2, 3×3 → 3, 6, 9
- 이제 이 배열의 모든 요소를 하나의 일차원 배열 B에 넣습니다: B = [1, 2, 3, 2, 4, 6, 3, 6, 9]
- B를 오름차순으로 정렬하면 다음과 같습니다: [1, 2, 2, 3, 3, 4, 6, 6, 9]
- 찾고자 하는 것은 정렬된 배열 B에서 7번째로 작은 수(6)입니다.
1 ~ 100
1 ~ 10
50 → 10개 가 있다
25개 → 10개가 있다
16개 → 10개가 있다
12 → 10개가 있다
10 → 10개
8 →
아이디어
- 모든 요소를 계산해서 정렬 후 이진 탐색을 하려고 했는데 그러면 메모리 초과 문제가 생김
- 배열 A의 모든 요소를 실제로 계산하고 정렬하는 대신, 이진 탐색을 사용하여 문제를 해결
- 최소값 **
min_value
**는 1, 최대값 **max_value
**는 n*n으로 설정