풀이
- 해당 문제는 간단한 문제로
- 문제만 잘 읽고, 이해하면 되는 문제라고 판단하여 빠르게 해결
- M과 N 사이의 값 중 완전제곱인 수의 합과, 최솟값을 구하는 문제로
- M을 루트 씌운 값을 시작으로 완전제곱일 경우에 대한 조건 분기를 거쳐 해결.
import java.util.Scanner;
public class _1977 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int M = sc.nextInt();
int N = sc.nextInt();
long result = 0;
int now = (int)Math.round(Math.sqrt(M));
int start = 0;
while (now*now<=N) {
if (M<=now*now&&now*now<=N) {
result+= (long) now*now;
if (start==0) start = now*now;
}
now++;
}
if (result==0) System.out.println(-1);
else {
System.out.println(result);
System.out.println(start);
}
}
}
'알고리즘' 카테고리의 다른 글
[백준, 자바, 14425번] 문자열 집합 (0) | 2024.11.11 |
---|---|
[백준, 자바, 19532번] 수학은 비대면강의입니다 (0) | 2024.11.11 |
[백준, 자바, 1057번] 토너먼트 (1) | 2024.11.09 |
[백준, 자바, 1541번] 잃어버린 괄호 (0) | 2024.11.08 |
[백준, 자바, 14940번] 쉬운 최단거리 (0) | 2024.11.01 |