728x90
https://www.acmicpc.net/problem/20444
20444번: 색종이와 가위
첫 줄에 정수 n, k가 주어진다. (1 ≤ n ≤ 231-1, 1 ≤ k ≤ 263-1)
www.acmicpc.net
메모리: 14,188 KB , 시간: 124 ms
사용 알고리즘: 이분 탐색, 수학
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
long n = Long.parseLong(st.nextToken());
long k = Long.parseLong(st.nextToken());
// (m + 1) * (n - m + 1) = k라면 성립
// 이분 탐색으로 m을 찾는다
String result = "NO";
long s = 0, e = n / 2 + 1, m, tmp;
while(s <= e) {
m = (s + e) / 2;
tmp = (m + 1) * (n - m + 1);
if(tmp == k) {
result = "YES";
break;
}
else if (tmp > k) {
e = m - 1;
}
else s = m + 1;
}
// 출력
System.out.println(result);
}
}728x90
'Problem Solving > BOJ' 카테고리의 다른 글
| [백준, BOJ 3107] IPv6 (java) (1) | 2023.12.26 |
|---|---|
| [백준, BOJ 1939] 중량제한 (java) (1) | 2023.12.24 |
| [백준, BOJ 15681] 트리와 쿼리 (java) (0) | 2023.12.23 |
| [백준, BOJ 2250] 트리의 높이와 너비 (java) (0) | 2023.12.23 |
| [백준, BOJ 21278] 호석이 두 마리 치킨 (java) (1) | 2023.12.22 |