import java.util.Scanner;
public class Main {
/**
* 1. int[] 배열 몇개 만들지 입력받아서 num 에 저장
* 2. 배열에 저장하기
* 3. for 문으로 배열 돌면서 최대 최소 찾기
* 4. 최대 * 최소 = 정답
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int[] arr = new int[num];
for(int i = 0; i < num; i++){
arr[i] = scan.nextInt();
}
int min = arr[0];
int max = arr[0];
for(int j =0; j < num; j++){
if(arr[j] >= max){
max = arr[j];
}
if(arr[j] < min){
min = arr[j];
}
}
int result = min * max;
System.out.println(result);
}
}
문제를 읽고 내가 어떤 순서로 코드를 짤지 먼저 생각 정리를 해본 후에 코딩을 해보았다.
먼저 첫줄에 몇개의 수를 입력받을 건지 입력받으므로 해당 크기만큼의 int 배열을 만들어주었다.
그리고 scanner 로 배열에 숫자 하나씩 저장한다.
for 문으로 배열을 순회하면서 min, max 값과 비교하면서 갱신시킨다.
for 문을 돌고 나오면 배열에서 가장 작은 값이 min 에, 가장 큰 값이 max 에 저장되어있을 것이다.
우리가 약수를 구하는 과정을 생각해보자!
내가 최소값과 최대값을 구한 이유에 대해 알 수 있다.
6의 약수를 구하는 과정을 생각해보자.
6
= 1 x 6
= 2 x 3
이런식이다. 약수는 1, 2, 3, 6 이고 어떤 수의 약수인지 알려면 가장 작은 수와 가장 큰 수를 곱해서 알 수 있다.
따라서 내가 for 문에서 구한 최솟값과 최댓값 둘을 곱하면 N 이 나오게 된다.
'PS > 백준' 카테고리의 다른 글
[백준/2292번/java] - 벌집 (0) | 2024.03.20 |
---|---|
[백준/11650번/java] - 좌표 정렬하기 (0) | 2024.03.18 |
[백준/2163번/java] - 초콜릿 자르기 (1) | 2024.03.14 |
[백준/1357번/java] - 뒤집힌 덧셈 (0) | 2024.03.13 |
[백준/2477번/c언어] 숫자의 개수 (1) | 2023.06.30 |