본문 바로가기
백준/20001 - 25000

[백준] 23276번 : Locust Locus(JAVA)

by lms0806 2021. 10. 22.
728x90
반응형

https://www.acmicpc.net/problem/23276

 

23276번: Locust Locus

The first line of input contains a single integer $k$ ($1 \le k \le 99$), the number of pairs of periodical cicadas.  Then follow $k$ lines, each containing three integers $y$, $c_1$ and $c_2$ ($1800 \le y \le 2021$, $1 \le c_1, c_2 \le 99$), the year thi

www.acmicpc.net

풀이

왼쪽수 + (가운데수 * 오른쪽수 / 최대공약수(가운데수, 오른쪽수) = 왼쪽수 + 최소공배수(가운데수, 오른쪽수)

중 가장 작은 값을 출력하면 됩니다.

 

소스코드

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

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 min = Integer.MAX_VALUE;
		while(n --> 0) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int num = Integer.parseInt(st.nextToken());
			int a = Integer.parseInt(st.nextToken()), b = Integer.parseInt(st.nextToken());
			
			min = Math.min(num + (a * b / gcd(a, b)), min);
		}
		System.out.print(min);
	}
	
	public static int gcd(int a, int b){
		if (a % b == 0) {
			return b;
		}
		return gcd(b, a % b);
	}
}
728x90
반응형

댓글