my study.

Coding Test/Baekjoon

[백준] 1145 적어도 대부분의 배수, java

fftl 2025. 1. 18. 14:50

주석을 통해 설명을 적어두었습니다.

public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());

		//다섯개의 수만 주어지기 때문에 5의 크기를 가지는 배열을 선언합니다.
		int[] nums = new int[5];

		//nums 배열에 입력받은 수를 넣어줍니다.
		for (int i = 0; i < 5; i++) {
			nums[i] = Integer.parseInt(st.nextToken());
		}

		//최솟값을 찾기 위해 정렬해줍니다.
		//입력 받은 수 중 최솟값부터 정답이 될 수 있는 가능성이 있습니다.
		Arrays.sort(nums);

		//최솟값을 시작 값으로 두고 while문을 시작합니다.
		//result는 찾아낸 정답을 담기 위해 미리 만들어 줍니다.
		int start = nums[0];
		int result;

		while(true){

			//세 개 이상의 배수를 판단하기 위해 cnt를 이용해 개수를 세어줍니다.
			int cnt = 0;

			//입력 받은 다섯 개의 수 중에 현재 start 수로 나누어 떨어지는 수의 개수를 세어줍니다.
			for(int n : nums){
				if(start%n==0) cnt++;
			}

			//만약 세어낸 cnt가 3이상일 경우 답을 찾았습니다.
			//result에 start값을 담아주고 반복을 종료합니다.
			if(cnt>=3){
				result = start;
				break;

			//세 개 이상 나누어 떨어지는 수가 없다면, start를 증가시키고 다시 반복합니다.
			} else {
				start++;
			}
		}

		//찾아낸 result를 출력합니다.
		System.out.println(result);
	}

'Coding Test > Baekjoon' 카테고리의 다른 글

[백준] 23971 ZOAC4, java  (0) 2024.08.13
[백준] 2933 미네랄, java  (0) 2024.07.30
[백준] 11559 Puyo Puyo, java  (0) 2023.09.04
[백준] 15591 MooTube, java  (0) 2023.09.03
[백준] 1806 부분합, java  (0) 2023.05.09