👀 문제
https://www.acmicpc.net/problem/3036
👊 도전
1. 설계
- 숫자를 배열에 저장한 후, array[0]과 array[i]의 최대공약수를 구해서 해당 값을 나눈 후 기약분수 형태로 출력한다.
2. 구현 (성공 코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.Scanner;
/**
* @author HEESOO
*
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int[] array=new int[n];
for(int i=0;i<n;i++) {
array[i]=input.nextInt();
}
int gcd;
for(int i=1;i<n;i++) {
if(array[0]<array[i])
gcd=getGcd(array[i], array[0]);
else
gcd=getGcd(array[0], array[i]);
System.out.println(array[0]/gcd+"/"+array[i]/gcd);
}
}
public static int getGcd(int a, int b) {
if(a%b==0)
return b;
else
return getGcd(b, a%b);
}
}
3. 결과
🤟 성공 🤟
4. 설명
- 최대공약수를 구한다
- array[0]과 나머지 값들을 비교하며 출력한다.
- array[0], array[i]의 최대공약수를 구한 후, 최대공약수로 나누면 첫 번째 링에 대해 돌린 횟수를 알 수 있다.