[Java] Section7 - 문제와 풀이

코드 속의 "진돌"·2024년 2월 27일
0
post-thumbnail

✅ 구매한 자동차 수


🔔 문제 설명

다음 코드를 참고해서 생성한 차량 수를 출력하는 프로그램을 작성하자.



🔔 요구 사항

Car 클래스를 작성하자.



📚 예시 코드

package static2.ex;

public class CarMain {

  public static void main(String[] args) {
    Car car1 = new Car("K3");
    Car car2 = new Car("G80");
    Car car3 = new Car("Model Y");

    Car.showTotalCars();  // 구매한 차량 수를 출력하는 static 메서드
  }
}



🖥️ 실행 결과



✏️ 정답

package static2.ex;

public class Car {
  private static int totalCars;
  private String name;

  public Car(String name) {
    System.out.println("차량 구입, 이름: " + name);
    this.name = name;
    totalCars++;
  }
  

  public static void showTotalCars() {
    System.out.println("구매한 차량 수: " + totalCars);
  }
}




✅ 수학 유틸리티 클래스


🔔 문제 설명

다음 기능을 제공하는 배열용 수학 유틸리티 클래스(MathArrayUtils)를 만드세요.

  • sum(int[] array) : 배열의 모든 요소를 더하여 합계를 반환합니다.
  • average(int[] array) : 배열의 모든 요소의 평균값을 계산합니다.
  • min(int[] array) : 배열에서 최소값을 찾습니다.
  • max(int[] array) : 배열에서 최대값을 찾습니다.



🔔 요구 사항

  • MathArrayUtils은 객체를 생성하지 않고 사용해야 합니다. 누군가 실수로 MathArrayUtils의 인스턴스를 생성하지 못하게 막으세요.
  • 실행 코드에 static import를 사용해도 됩니다.



📚 실행 코드

package static2.ex;

import static static2.ex.MathArrayUtils.*;

public class MathArrayUtilsMain {

  public static void main(String[] args) {
    int[] values = {1, 2, 3, 4, 5};
    System.out.println("sum= " + sum(values));
    System.out.println("average= " + average(values));
    System.out.println("min= " + min(values));
    System.out.println("max= " + max(values));
  }
}



🖥️ 실행 결과



✏️ 정답

package static2.ex;

public class MathArrayUtils {

  private MathArrayUtils() {
    // private -> 인스턴스 생성을 막는다.
  }

  public static int sum(int[] values) {
    int total = 0;
    for (int value : values) {
      total += value;
    }
    return total;
  }

  public static double average(int[] values) {
    return (double) sum(values) / values.length;
  }

  public static int min(int[] values) {
    int minValue = values[0];
    for (int value : values) {
      if (value < minValue) {
        minValue = value;
      }
    }
    return minValue;
  }

  public static int max(int[] values) {
    int maxValue = values[0];
    for (int value : values) {
      if (value > maxValue) {
        maxValue = value;
      }
    }
    return maxValue;
  }
}
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글