반응형
<문제 분석>
문자열을 split 해서 분리하는 것과 최대공약수를 구하는 법을 알아야 한다.
최대공약수는 유클리드 호제법을 이용해서 구현했다.
<코드 구현>
import java.util.*;
import java.io.*;
/*
[백준] 14490번 - 백대열 (Java)
*/
public class Main {
static int N, number;
static int A[];
void InputData() {
Scanner in = new Scanner(System.in);
//N = in.nextInt();
String str = in.next();
String s[] = str.split(":");
A = new int[2];
for (int i=0; i<2; i++) {
A[i] = Integer.parseInt(s[i]);
}
}
// 최대공약수 (유클리드 호제법)
// b%a의 나머지 r1
// a%r1의 나머지 r2
// r이 0이 나오면 b%a의 a가 최대공약수이다.
int GCD(int a, int b) {
if (b%a == 0) return a;
else return GCD(b%a, a);
}
void Solve() {
int num = 0;
num = GCD(A[0], A[1]);
//System.out.println(num);
System.out.println(A[0]/num+":"+A[1]/num);
}
public static void main(String[] args) {
Main m = new Main();
m.InputData();
m.Solve();
}
}
<제출 결과>
반응형
'알고리즘 PS > 백준 알고리즘' 카테고리의 다른 글
[백준] 1463번 - 1로 만들기 (Java) (1) | 2022.09.26 |
---|---|
[백준] 9935번 - 문자열 폭발 (Java) (0) | 2022.09.21 |
[백준] 11720번 - 숫자의 합 (Java) (0) | 2022.09.21 |
[백준] 1436 - 영화감독 숌 (Java) (0) | 2022.09.19 |
[백준] 10872번 - 팩토리얼 (Java) (0) | 2022.09.19 |
댓글