반응형
https://www.acmicpc.net/problem/1037
- 문제
- 문제 풀이
백준 1037번 약수는 실버 5 난이도의 수학 문제이다. 이 문제에서는 약수의 개수 n이 주어지고 그다음 줄에는 n개만큼의 약수들이 주어진다. 이 문제에서는 다음과 같이 주어졌다 : A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다.
즉, N을 A만큼 나누면 나머지는 0이라는 것이다. 이 말은 N ÷ A = B라는 것이다. 그래서 주어진 약수들 중에서 가장 작은 약수와 가장 큰 약수를 곱하면 N이 나온다.
문제에서 주어진 예제들을 한번 보겠다. 가장 작은 약수를 min, 가장 큰 약수를 max라고 하겠다.
EX 1) 4, 2
첫 번째 예제에서 min은 2이고 max는 4이다. 따라서 2 × 4 = 8이다.
EX 2) 2
두 번째 예제에서 min은 2이고 max는 2이다. 따라서 2 × 2 = 4이다.
EX 3) 3, 4, 2, 12, 6, 8
세 번째 예제에서 min은 2이고 max는 12이다. 따라서 2 × 12 = 24이다.
EX 4) 14, 26456, 2, 28, 13228, 3307, 7, 23149, 8, 6614, 46298, 56, 4, 92596
네 번째 예제에서 min은 2이고 max는 92596이다. 따라서 2 × 92596 = 185192이다.
- 코드 1 (MIN, MAX 이용)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
min = Math.min(min, arr[i]);
max = Math.max(max, arr[i]);
}
System.out.print(min * max);
}
}
- 코드 2 (Arrays.sort 이용)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
System.out.print(arr[0] * arr[n-1]);
}
}
- 후기
약수가 뭔지만 알면 풀 수 있는 되게 간단한 문제였다.
반응형
'백준' 카테고리의 다른 글
[백준] 10886번 : 0 = not cute / 1 = cute – JAVA [자바] (0) | 2022.04.20 |
---|---|
[백준] 2902번 : KMP는 왜 KMP일까? – JAVA [자바] (0) | 2022.04.18 |
[백준] 2163번 : 초콜릿 자르기 – JAVA [자바] (0) | 2022.04.18 |
[백준] 2480번 : 주사위 세개 – JAVA [자바] (0) | 2022.04.17 |
[백준] 1764번 : 듣보잡 – JAVA [자바] (1) | 2022.04.17 |
댓글