[Java] 백준 문제 풀이 - 1037번

이진석·2022년 10월 27일
0

백준 문제 풀이!!

목록 보기
6/13
post-thumbnail

20221027

문제

양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오

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


풀이

import java.util.*;

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);
    }
}

  • 처음에는 모든 약수를 구해야 하나 하고 머리가 복잡했는데, 최대공약수와 최소공배수를 구해서 두 수를 곱하면 원래 수가 나온다는 것을 깨닫고 코드가 간단해졌다.
profile
혼자서 코딩 공부하는 전공생 초보 백엔드 개발자 / https://github.com/leejinseok0614

0개의 댓글