Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1300] K번째 수 본문
반응형
n*n 크기의 2차원 배열을 구현하기에는 메모리가 너무 크다.
문제에서 말한대로 진행하는데는 문제가 있어 보인다.
배열을 만들지 않아도 인덱스 별로 i*j 가 들어간다는걸 이미 알고 있으므로,
루프 하나로 한 줄을 한번에 카운트 해주면 되겠다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long k = sc.nextLong();
long left = 0;
long right = (long)n*n;
while(left <= right) {
long mid = (left + right)/2;
long cnt = 0;
for(int i=1; i<=n; i++) {
long num = mid / i;
cnt += num > n ? n : num;
}
if(cnt >= k) right = mid - 1;
else left = mid + 1;
}
System.out.println(left);
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 2751] 수 정렬하기 2 (0) | 2019.05.18 |
---|---|
[백준 2448] 별 찍기 - 11 (0) | 2019.05.16 |
[백준 15732] 도토리 숨기기 (0) | 2019.05.15 |
[백준 16434] 드래곤 앤 던전 (0) | 2019.05.15 |
[백준 2110] 공유기 설치 (0) | 2019.05.15 |
Comments