차량 5부제 구현을 위한 Java 코드 작성하기



차량 5부제 구현을 위한 Java 코드 작성하기

Java를 활용하여 차량 5부제 시스템을 구현하는 과정은 여러 조건을 고려해야 하는 복잡한 작업입니다. 이 글에서는 차량 5부제의 기본 원리 및 이를 구현하기 위한 Java 코드의 작성을 자세히 설명합니다. 또한, 각 조건을 어떻게 코드로 변환했는지를 구체적으로 살펴보겠습니다.

 

👉 ✅ 상세 정보 바로 확인 👈

 

차량 5부제의 기본 이해와 적용 방법

차량 5부제는 특정 조건에 따라 차량의 출입을 제한하는 제도입니다. 이 제도를 구현하기 위해서는 몇 가지 중요한 조건을 고려해야 합니다.



2026년 기준 차량 5부제의 적용 조건

2026년 현재 차량 5부제의 적용 조건은 다음과 같습니다.

  1. 시행 일자는 2018년 9월 1일부터 적용됩니다.
  2. 모든 공휴일에는 차량의 출입이 허가됩니다.
  3. 장애인, 유아 동승 차량, 경차는 언제든지 출입할 수 있습니다.
  4. 요일별로 차량 끝번호에 따라 출입이 허가되거나 통제됩니다.

이러한 조건을 바탕으로 Java 클래스를 설계해 보겠습니다.

 

👉 ✅ 상세 정보 바로 확인 👈

 

Java 클래스 설계 및 구현

차량 5부제를 위한 Java 코드는 Car 클래스를 중심으로 구성됩니다. 이 클래스는 차량의 끝번호와 유형을 랜덤으로 생성하고, 출입 가능 여부를 판단하는 기능을 가집니다.

Car 클래스의 기본 구조

“`java
import java.util.Random;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Car {
private String carNumber;
private String carType;

public Car() {
    Random random = new Random();
    this.carNumber = String.valueOf(random.nextInt(10)); // 0-9 random end number
    this.carType = random.nextBoolean() ? "일반" : "경차"; // Randomly assign type
}

public String getCarNumber() {
    return carNumber;
}

public String getCarType() {
    return carType;
}

public boolean finalDecision(LocalDate searchDate) {
    LocalDate enforcementDate = LocalDate.of(2018, 9, 1);

    if (searchDate.isBefore(enforcementDate)) {
        return false;
    }

    if (isHoliday(searchDate)) {
        return true;
    }

    if (carType.equals("장애인") || carType.equals("유아동승") || carType.equals("경차")) {
        return true;
    }

    return numDecision(searchDate, carNumber);
}

private boolean isHoliday(LocalDate date) {
    // Check if the date is a holiday (this is an example, actual implementation may vary)
    return false; // Placeholder for holiday logic
}

private boolean numDecision(LocalDate date, String carNumber) {
    // Logic to restrict based on day of the week and car number
    int dayOfWeek = date.getDayOfWeek().getValue(); // 1 (Monday) to 7 (Sunday)
    // Example: if it's Monday, restrict cars ending with 1
    return !carNumber.equals(String.valueOf(dayOfWeek % 10)); // Example restriction
}

}
“`

출입 결정 로직 설명

  • finalDecision 메서드는 차량 출입 가능 여부를 판단합니다. 먼저 시행일자를 확인하고, 그 다음 공휴일인지 체크합니다. 공휴일이라면 출입이 허가됩니다.
  • 만약 차량이 장애인, 유아 동승, 또는 경차인 경우에도 출입이 허가됩니다.
  • 마지막으로 요일에 따라 차량 끝번호로 출입이 제한될 수 있습니다.

사용자 입력 및 결과 출력

사용자가 검색할 날짜를 입력하고, 해당 날짜에 대한 차량 출입 가능 여부를 출력하는 메인 메서드는 다음과 같이 구성할 수 있습니다.

“`java
import java.time.LocalDate;
import java.util.Scanner;

public class VehicleRestriction {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“검색할 날짜를 입력하세요 (yyyy-mm-dd): “);
String inputDate = scanner.nextLine();
LocalDate searchDate = LocalDate.parse(inputDate, DateTimeFormatter.ofPattern(“yyyy-MM-dd”));

    Car car = new Car();
    System.out.println("차량 끝번호: " + car.getCarNumber());
    System.out.println("차량 유형: " + car.getCarType());

    if (car.finalDecision(searchDate)) {
        System.out.println("출입이 가능합니다.");
    } else {
        System.out.println("출입이 제한됩니다.");
    }

    scanner.close();
}

}
“`

이 코드는 사용자가 입력한 날짜에 대해 차량의 출입 가능 여부를 판단하여 결과를 출력합니다.

결론

차량 5부제를 구현하기 위한 Java 코드는 여러 조건을 체계적으로 고려해야 합니다. 각 조건에 맞는 로직을 클래스와 메서드로 나누어 작성함으로써, 코드를 효율적으로 관리하고 확장할 수 있습니다. 이와 같이 Java를 활용하여 실제 상황에서 필요한 조건들을 반영한 프로그램을 만들 수 있습니다.