[JAVA] 약수

NoHae·2025년 3월 24일

백준

목록 보기
23/106

문제 출처

단계별로 풀어보기 > 심화 2 > 약수
https://www.acmicpc.net/problem/1037

문제 설명

양수 A의 약수의 개수가 주어지고, 1과 본인을 제외한 약수가 주어질 때, 양수 A를 return 하라.

접근 방법

주어진 약수를 배열에 입력 후, 오름차순으로 정렬하여 첫 번째 x 마지막 요소를 한다.
이는 양수 A이므로 해당 값을 return 한다.

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class 약수 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int num = Integer.parseInt(br.readLine());
        int[] divisor = new int[num];


        st= new StringTokenizer(br.readLine());

        for(int i = 0; i<num; i++){
            divisor[i] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(divisor);

        int N = divisor[0] * divisor[num-1];
        bw.write(String.valueOf(N));
        bw.flush();
        bw.close();
        br.close();
    }
}

Review

import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;

public class 약수_review {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;

        int count = Integer.parseInt(br.readLine());
        int[] num = new int[count];

        st = new StringTokenizer(br.readLine());

        for (int i = 0; i<count; i++){
            num[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(num);
        bw.write(String.valueOf(num[0] * num[num.length -1]));
        bw.flush();
        bw.close();
        br.close();
    }

}

알게된 점

처음에 오름차순 정렬을 안해서 예제 입력 3,4에서 이상한 값이 나왔었다.

문제푼 흔적

profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글