백준 1037번 : 약수

반응형

백준 1037번 : 약수

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


public class Main {
    public void solution() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());
        int[] intArr = new int[count];
        for(int i = 0; i<count; i++){
            intArr[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(intArr);
        System.out.println(intArr[0]*intArr[count-1]);
    }

    public static void main(String[] args) throws IOException {
        new Main().solution();
    }
}

문제를 처음 봤을때 간단하게 든 생각은 최대크기에서 *2를 해주면 정답이라는 점이였다.

물론 이것도 정답이지만 문제의 의도에 맞춰  N은 A의 배수라는 점을 이용해 최대값과 최소값을 곱해주는 식의 풀이가 맞는거 같다.

그리고 이미 입력 부분에서 갯수(count)가 주어졌는데 가변길이인 ArrayList를 사용하려고 했던 점과 최대값을 구할때 

List.size()-1 을 하려고 했던 점에서 문제해결에 있어서 순차적인 생각이 중요하다는 것을 깨달았다. 구하려고자 하는 값이 무엇이며

나에게 주어진 것들이 무엇이 있는지 상기하면서 코드를 입력해야겠다.

 

반응형

'개발 > 알고리즘' 카테고리의 다른 글

백준 17425번 : 약수의 합  (0) 2022.12.25
백준 2609번 : 최대공약수와 최소공배수  (0) 2022.12.24
백준 17427번 : 약수의 합2  (0) 2022.12.23
백준 4375번 : 1  (0) 2022.12.22
백준 10430번 : 나머지  (0) 2022.12.22