PS [2일차]

Daniel·2022년 7월 17일
0

PS

목록 보기
2/32
post-thumbnail

문제 번호

1037

package Main;

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		// 선언
		int testcase = in.nextInt();
		int n [] = new int [testcase];

		// 배열에 약수를 입력
		for(int i = 0 ;i < testcase; i++) {
			n[i] = in.nextInt();
		}
		// 기본값 설정
		int max = n[0];
		int min = n[0];

		// 최대 최소값 탐색
		for(int i = 0 ;i < testcase; i++) {
			if (n[i] >= max) {
				max = n[i];
			}
			if (n[i] <= min) {
				min = n[i];
			}
		}

		// 출력
		System.out.println(max * min);

	}
}

TIL

풀이 알고리즘

문제

양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.

배열의 최소값과 최대값을 탐색하여 곲한 값을 출력한다.

주의

약수의 특성을 알고 있어야 한다. 문제에서 약수는 1과 자기자신을 제외한 모든 값을 입력한다.

즉 입력값의 최대값과 최소값의 곱이 해당 수의 배수이다. (이거 놓쳐서 시간좀 걸렸다...)

회고

프로그래밍에서 수학을 놓고 살 수 있기는 하지만 너무 긴밀한 관계라 어쩔 수 없다. 결국에는 어느정도의 수학적 지식이 필요하다. 할 일이 많다...

profile
폐쇄

0개의 댓글