본문 바로가기

WEB/Algorithm

백준 1037

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

 

1037번: 약수

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

www.acmicpc.net

 

<문제 요약>

첫 줄에 N의 약수 개수

다음줄에 N의 약수 A들이 입력(1과 N은 안됨)

N을 구하라

 

 

<문제 풀이>

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

public class P1037 {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        int n=Integer.parseInt(br.readLine());

        ArrayList<Integer> arrayList=new ArrayList<>();


        StringTokenizer st=new StringTokenizer(br.readLine());
        while (st.hasMoreTokens()){
            arrayList.add(Integer.parseInt(st.nextToken()));
        }


        int max= Collections.max(arrayList);
        int min=Collections.min(arrayList);

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

 

입력된 A들에서 최대랑 최소값을 구해서 곱하면 N이 나올거라고 생각했다

(검색해보니 이걸 최소 공배수라고 ,,)

 

Collections로 max, min 찾아도 되고 아님 정렬되는 친구를 사용해서 풀어도 될 것 같다 . 

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class P1037 {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        int n=Integer.parseInt(br.readLine());

        int max=Integer.MIN_VALUE;
        int min=Integer.MAX_VALUE;

        StringTokenizer st=new StringTokenizer(br.readLine());
        while (st.hasMoreTokens()){
            int num=Integer.parseInt(st.nextToken());
            max=(max>num)? max:num;
            min=(min>num)? num:min;

        }

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

 

이렇게도 풀어봤는데!

 

결과는 이렇다

첫 코드보다 채점 시간이 훨씬 빨라서 기대했는데! 메모리 차이는 별로 없는 것 같다 

'WEB > Algorithm' 카테고리의 다른 글

백준 15651  (0) 2023.11.24
백준 24060  (1) 2023.11.22
백준 25501  (0) 2023.11.22
백준 27433  (1) 2023.11.22
백준 26069  (1) 2023.11.21