728x90
반응형
https://www.acmicpc.net/problem/23276
풀이
왼쪽수 + (가운데수 * 오른쪽수 / 최대공약수(가운데수, 오른쪽수) = 왼쪽수 + 최소공배수(가운데수, 오른쪽수)
중 가장 작은 값을 출력하면 됩니다.
소스코드
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
반응형
'백준 > 20001 - 25000' 카테고리의 다른 글
[백준] 23343번 : JavaScript(JAVA) (0) | 2021.10.30 |
---|---|
[백준] 23278번 : 영화 평가(JAVA) (0) | 2021.10.24 |
[백준] 23275번 : Knot Knowledge(JAVA) (0) | 2021.10.22 |
[백준] 23251번 : 스물셋(JAVA) (0) | 2021.10.18 |
[백준] 23207번 : Preludes(JAVA) (0) | 2021.10.13 |
댓글