반응형
https://www.acmicpc.net/problem/1977
import java.io.*;
public class Main {
static int N, M, total;
static int min = Integer.MAX_VALUE;
static int stoi(String s) {
return Integer.parseInt(s);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
M = stoi(br.readLine());
N = stoi(br.readLine());
for (int i = 1; i * i <= N; i++) {
int x = i * i;
if (M <= x && x <= N) {
min = Math.min(min, x);
total += x;
}
}
System.out.println(total == 0 ? -1 : total + "\n" + min);
}
}
우선 M, N은 1이상 1만 이하의 자연수라서 그냥 1부터 N까지 전부 돌면서 완전제곱수인 수를 찾기로 했다.
최솟값과 총합을 구해야 하므로 min, total 에다가 각각 저장을 해두었다.
매 반복문을 돌면서 제곱수가 M과 N의 범위 내에 들면, 그 값 중 최솟값을 저장하고 총합에 더해주었다.
완전제곱수가 없으면 total은 0이므로, 삼항연산자를 통해 -1을 출력하도록 작성해주었다.
반응형
'알고리즘 🤔' 카테고리의 다른 글
[백준 자바 10825] 국영수 (실버4) (2) | 2024.06.27 |
---|---|
[백준 자바 1076] 저항 (브론즈2) (0) | 2024.06.26 |
[백준 자바 1145] 적어도 대부분의 배수 (브론즈1) (0) | 2024.06.23 |
[백준 자바 5635] 생일 (실버5) (0) | 2024.06.21 |
[백준 자바 9093] 단어 뒤집기 (브론즈1) (0) | 2024.06.19 |