728x90
반응형
2024.11.07기준 - 브론즈2
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
🟥 풀이
이 문제는 두 수 a, b의 최소공배수와 최대공약수를 구하는 문제입니다.
1. 두 수의 최소공배수, 최대공약수를 구하는 메소드를 생성합니다.
// 두 수의 최소공배수와 최대공약수를 구하는 메소드
private static int[] minMax (int a, int b) {
int min = 1; // 최대공약수
int max = 1; // 최소공배수
int[] result = new int[2];
result[0] = a;
result[1] = b;
boolean run = true;
while (run) {
for (int i = 2; i <= Math.min(result[0], result[1]); i++) {
if (result[0] % i == 0 && result[1] % i == 0) {
min *= i;
max *= i;
result[0] /= i;
result[1] /= i;
break;
} else if (i == Math.min(result[0], result[1])) {
run = false;
}
}
if (result[0] == 1 || result[1] == 1) {
break;
}
}
max *= result[0];
max *= result[1];
result[0] = max;
result[1] = min;
return result;
}
2. 입력받은 수를 넣어 최대공약수와 최소공배수를 출력합니다.
while (t-- > 0) {
st = new StringTokenizer(br.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
int[] minMaxNum = minMax(a, b);
sb.append(minMaxNum[0]).append(" ").append(minMaxNum[1]).append("\n");
}
🟪 코드
package Main;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine());
int a, b;
StringTokenizer st;
while (t-- > 0) {
st = new StringTokenizer(br.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
int[] minMaxNum = minMax(a, b);
sb.append(minMaxNum[0]).append(" ").append(minMaxNum[1]).append("\n");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
// 두 수의 최소공배수와 최대공약수를 구하는 메소드
private static int[] minMax (int a, int b) {
int min = 1; // 최대공약수
int max = 1; // 최소공배수
int[] result = new int[2];
result[0] = a;
result[1] = b;
boolean run = true;
while (run) {
for (int i = 2; i <= Math.min(result[0], result[1]); i++) {
if (result[0] % i == 0 && result[1] % i == 0) {
min *= i;
max *= i;
result[0] /= i;
result[1] /= i;
break;
} else if (i == Math.min(result[0], result[1])) {
run = false;
}
}
if (result[0] == 1 || result[1] == 1) {
break;
}
}
max *= result[0];
max *= result[1];
result[0] = max;
result[1] = min;
return result;
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 32515번 BB84 (1) | 2024.11.09 |
---|---|
BEAKJOON / 백준 - JAVA 8320번 직사각형을 만드는 방법 (0) | 2024.11.08 |
BEAKJOON / 백준 - JAVA 29732번 Rick-Roll Virus (0) | 2024.10.02 |
BEAKJOON / 백준 - JAVA 6246번 풍선 놀이 (0) | 2024.09.29 |
BEAKJOON / 백준 - JAVA 24039번 2021은 무엇이 특별할까? (0) | 2024.09.28 |