Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - 약수 (1037) (자바/Java) 본문

알고리즘문제/백준 문제(Java)

[백준] - 약수 (1037) (자바/Java)

luke-king 2024. 2. 19. 18:57

 

 

 

 

 

 

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

 

1037번: 약수

첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되

www.acmicpc.net

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int[] arr = new int[num];



        for (int i = 0; i < num; i++) {
            arr[i] = sc.nextInt();
        }

        Arrays.sort(arr);

        int max = arr[num - 1];
        int min = arr[0];

        System.out.println(max * min);
    }

}

 

이번 문제를 풀면서 문제를 꼼꼼하게 읽고 이해하자는 걸 느꼈다...

훌훌 읽으면서 쉽네(?) 하며 최소공배수로 구했는데.. 계속 틀려 다시 읽어보니 중요한 문장이 있다.

 

"어떤 수 N의 진짜 약수가 모두 주어질때"

 

이 부분 때문에 최소공배수로 구하면 오답이다.

 

그러므로 그냥 입력값 중 최솟값과 최댓값을 서로 곱하면 끝이다!!

그래서 sort() 함수를 사용해 오름차순으로 정렬한 뒤 최솟값과 최댓값을 곱했다.

 

 

 

( 오늘의 교훈: 문제를 신중하게 읽고 생각하자....!! )