-
[백준 1977번] 완전제곱수Algorithm/기타 2019. 12. 20. 17:16
백준알고리즘 1977번 : 완전제곱수
완전제곱에 대한 조건문을 언제부터 돌려야하나.. 싶었는데 기우였다.
왜냐하면 최솟값과 최댓값이 1에서부터 10000까지 이기때문에,
1부터 시작해서 조건을 돌려도 100번밖에 돌지 않기때문이다.
조건이 더 넓어지면 이렇게 단순하게는 안되겠지만..
풀이 과정
1. for문을 반복하여 늘어나는 숫자들의 제곱값과 minimum 값을 비교한다.
2. i*i의 값이 minimum 값보다 크거나 같다면, 해당 값을 변수에 집어넣는다.
3. 그 후로 maximum 값이 i*i의 값보다 커질때 까지 for문을 반복하며 해당 값들을 더해준다.
4. 단, 2번에서 집어넣은 값이 없이 maximum값이 i*i의 값보다 커져버렸다면, 변수에 -1을 넣는다.
5. 또한, 2번의 변수 값이 -1이라면, 총 합을 출력하지 않는 조건식을 추가한다.<< 백준알고리즘 1977번 반례 >>
100 100
99 99소스 ▽
더보기import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int min = sc.nextInt(); int max = sc.nextInt(); int sum = 0; int ans = 0; for (int i = 1; i <= 100; i++) { if (i * i > max) { if (ans == 0) { ans = -1; } break; } if (i * i >= min) { if (ans == 0) { ans = i * i; } sum += i * i; } } if (sum != 0) { System.out.println(sum); } System.out.println(ans); } }
'Algorithm > 기타' 카테고리의 다른 글
[백준 1193번] 분수찾기 (0) 2019.12.27 [백준 1453번] 피씨방 알바 (0) 2019.12.25 [백준 4344번] 평균은 넘겠지 (0) 2019.12.17 [백준 11719번] 그대로 출력하기 2 (0) 2019.12.16 [백준 11721번] 열 개씩 끊어 출력하기 (0) 2019.12.15