관람차 A는 15분마다 한 바퀴 회전
관람차 B는 20분마다 한 바퀴 회전
두 관람자가 동시에 원래 위치로 돌아오는 최소 시간은?
1. 브루트 포스로 해결하기
1. 하드코딩
package algo;
public class BruteForce {
public static void main(String[] args) {
//관람차 A는 15분마다 한 바퀴 회전
//관람차 B는 20분마다 한 바퀴 회전
//두 관람자가 동시에 원래 위치로 돌아오는 최소 시간은?
int a = 0;
int b = 0;
// 15분
a = a + 15;
System.out.println("A 한바퀴 : " + a);
// 30분
a = a + 15;
System.out.println("A 한바퀴 : " + a);
// 45분
a = a + 15;
System.out.println("A 한바퀴 : " + a);
// 60분
a = a + 15;
System.out.println("A 한바퀴 : " + a);
System.out.println();
// 20분
b = b + 20;
System.out.println("B 한바퀴 : " + b);
// 40분
b = b + 20;
System.out.println("B 한바퀴 : " + b);
// 60분
b = b + 20;
System.out.println("B 한바퀴 : " + b);
}
}
2. 공통 모듈 만들기
package algo;
public class BruteForce {
public static void main(String[] args) {
//관람차 A는 15분마다 한 바퀴 회전
//관람차 B는 20분마다 한 바퀴 회전
//두 관람자가 동시에 원래 위치로 돌아오는 최소 시간은?
int a = 0;
int b = 0;
for (int i = 0; i < 4; i++) {
// 15분
a = a + 15;
System.out.println("A 한바퀴 : " + a);
}
System.out.println();
for (int i = 0; i < 3; i++) {
// 20분
b = b + 20;
System.out.println("B 한바퀴 : " + b);
}
}
}
3. 최종
package algo;
public class BruteForce {
public static void main(String[] args) {
//관람차 A는 15분마다 한 바퀴 회전
//관람차 B는 20분마다 한 바퀴 회전
//두 관람자가 동시에 원래 위치로 돌아오는 최소 시간은?
int a = 0;
int b = 0;
System.out.println("a가 돌아오는 시간의 주기");
for (int i = 0; i < 4; i++) {
// 15분
a = a + 15;
System.out.print(a + " ");
}
System.out.println();
System.out.println("b가 돌아오는 시간의 주기");
for (int i = 0; i < 3; i++) {
b = b + 20;
System.out.print(b + " ");
}
System.out.println();
System.out.println("동시에 오는 시간은 : " + a);
}
}
2. 최소공배수로 해결하기
package algo;
public class Lcm02 {
public static void main(String[] args) {
int a = 15;
int b = 20;
Gcd04.gcd(a, b);
System.out.println(a * b / Gcd04.gcd(a, b));
}
}

Share article