• 문제 링크
1977번: 완전제곱수
M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완
www.acmicpc.net
• 풀이 코드
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int m = read(), n = read(), sum = 0, min = 0;
for (int i = m; i <= n; i++) {
if (isPerfectSquare(i)) {
sum += i;
if (min == 0) min = i;
}
}
bw.write(min != 0 ? sum + "\n" + min : "-1");
bw.flush();
}
private static boolean isPerfectSquare(int i) {
int sqrt = (int) Math.sqrt(i);
return sqrt * sqrt == i;
}
private static int read() throws IOException {
int c, n = System.in.read() & 15;
while ((c = System.in.read()) > 32) n = (n << 3) + (n << 1) + (c & 15);
return n;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1522 문자열 교환 - Brute Force / Java (0) | 2024.01.25 |
---|---|
[백준] 13908 비밀번호 - Brute Force / Java (0) | 2024.01.24 |
[백준] 6193 Hungry Cows - Dynamic Programming / Java (0) | 2024.01.22 |
[백준] 15841 Virus Outbreak - Dynamic Programming / Java (0) | 2024.01.21 |
[백준] 6221 The Bale Tower - Dynamic Programming / Java (0) | 2024.01.20 |
댓글