inblog logo
|
An's Blog
    알고리즘JAVA

    [JAVA-알고리즘] 5-1 예제1

    윤설안's avatar
    윤설안
    Feb 07, 2025
    [JAVA-알고리즘] 5-1 예제1
    Contents
    1. 브루트 포스로 해결하기브루트 포스(Brute Force)란?1. 하드코딩2. 공통 모듈 만들기3. 최종2. 최소공배수로 해결하기
    관람차 A는 15분마다 한 바퀴 회전 관람차 B는 20분마다 한 바퀴 회전 두 관람자가 동시에 원래 위치로 돌아오는 최소 시간은?

    1. 브루트 포스로 해결하기

    💡

    브루트 포스(Brute Force)란?

    • 모든 경우의 수를 하나씩 직접 검사하여 답을 찾는 방법
    • *"완전 탐색"**이라고도 불림
    • 효율성은 낮지만, 정답을 반드시 찾을 수 있음
    • 하지만 시간복잡도가 높기 때문에 최적화가 필요

    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)); } }
    notion image
     
    Share article
    Contents
    1. 브루트 포스로 해결하기브루트 포스(Brute Force)란?1. 하드코딩2. 공통 모듈 만들기3. 최종2. 최소공배수로 해결하기

    An's Blog

    RSS·Powered by Inblog