Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1484] 다이어트 본문
반응형
투포인터를 통해
hi * hi - low * low 와 G를 비교한다.
투포인터 탐색을 언제 멈출건지가 가장 중요한데, low + 1 = hi 이고 두수의 제곱의 차가 G보다 작으면
더이상 연산할 필요가 없다.
또한 현재 몸무게와 이전 몸무게는 모두 자연수로 0이 될 수 없다는 점을 주의하자.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int g = sc.nextInt();
int lo = 1;
int hi = 1;
boolean f = false;
while(true) {
long minus = (long)(Math.pow(hi, 2)) - (long)(Math.pow(lo, 2));
if(hi - lo == 1 && minus > g) break;
if(minus >= g) lo++;
else hi++;
if(minus == g) {
System.out.println(hi);
f = true;
}
}
if(!f) System.out.println(-1);
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 1072] 게임 (0) | 2019.07.16 |
---|---|
[백준 2869] 달팽이는 올라가고 싶다 (0) | 2019.07.16 |
[백준 1806] 부분합 (0) | 2019.07.05 |
[백준 1644] 소수의 연속합 (0) | 2019.07.05 |
[백준 10974] 모든 순열 (0) | 2019.07.05 |
Comments