본문 바로가기
[ 다먹살 ]/- Coding

[백준] 1977 완전제곱수

by 엉망으로살기 2021. 11. 22.
반응형

https://www.acmicpc.net/problem/1977

 

1977번: 완전제곱수

M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완

www.acmicpc.net

 

제곱이라는 개념 자체를 이용해서 직접적으로 구현하기보다는 자바에서 제공하는 라이브러리를 최대한 이용해서 해결했다. 어쨌든 제곱수가 아니라면 소수점이 나올 수 밖에 없고, 소수점이 나왔을 때 강제 올림이나 강제 내림을 비교하면 소수점이 있는 지 아닌지를 알 수 있기 때문이 이 방법을 사용해서 해결했다.


문제 및 입출력


코드

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int sum = 0;
        int min = Integer.MAX_VALUE;
        
        for(int i=n; i<=m; i++)
        {
            if(Math.ceil(Math.sqrt(i))==Math.floor(Math.sqrt(i)))
            {
                sum += i;
                min = Math.min(min, i);
            }
        }
        
        if(sum==0)
        {
            System.out.println(-1);
            return;
        }
        
        System.out.println(sum + "\n" + min);
        sc.close();
    }
}

 

반응형

'[ 다먹살 ] > - Coding' 카테고리의 다른 글

[백준] 6603 로또  (0) 2021.11.23
[백준] 1934 최소공배수  (0) 2021.11.22
[백준] 13458 시험 감독  (0) 2021.11.22
[백준] 2163 초콜릿 자르기  (0) 2021.11.22
[프로그래머스] 레벨3 네트워크  (0) 2021.11.19

댓글