ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준 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);
    
    	}
    
    }
    

     

     

     

     

     

    댓글

Designed by Tistory.