Java

객체지향 문제 만들고 풀어보기

yerinpark 2023. 11. 22. 14:39

Java version : 11

lombok 1.18.30

 

짝과 함께 풀 수 있는 문제를 내보고 풀어봤다.

 

 

짝꿍을 위한 예제 
상암동 필라테스 가격 비교 프로그램을 만들어 주세요.
Pilates : name(업체명), program(업체에서 운영하는 프로그램명), price(프로그램의 가격 - 한 달 기준)
밑의 리스트 중 가장 저렴한 프로그램을 운영하는 업체명과 프로그램명을 출력해주세요.

 

 

 

Pilates

package fisa.model.domain;

import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Pilates {
	private String name;
	private String program;
	private int price;
}

 

main()

/* 짝꿍을 위한 예제 */
/*
* 상암동 필라테스 가격 비교 프로그램을 만들어 주세요.
* Pilates : name(업체명), program(업체에서 운영하는 프로그램명), price(프로그램의 가격 - 한 달 기준)
* 밑의 리스트 중 가장 저렴한 프로그램을 운영하는 업체명과 프로그램명을 출력해주세요.
* */
Pilates[] pilates = {new Pilates("상암필라테스", "핫요가", 120_000),
                 new Pilates("상암필라테스", "하타요가", 100_000),
                 new Pilates("상암필라테스", "힐링", 90_000),
                 new Pilates("마포요가", "요가", 50_000),
                 new Pilates("JTBC헬스", "빈야사", 100_000),
                 new Pilates("JTBC헬스", "아쉬탕가", 190_000),

};

printArray(pilates);

 

printArray

static void printArray(Pilates[] pilates) {

    /* 방법 1 : 정렬해서 0번째 인덱스 찾기 */
    Arrays.sort(pilates, new Comparator<Pilates>() {
        @Override
        public int compare(Pilates p1, Pilates p2) {
            return p1.getPrice() - p2.getPrice();
        }
    });

    System.out.println("상암동에서 가장 저렴한 필라테스는 바로...");
    System.out.println("업체명 : " + pilates[0].getName());
    System.out.println("프로그램명 : " + pilates[0].getProgram());
    System.out.println("가격 : " + pilates[0].getPrice());

}

 

원래는 방법 2로 풀었었는데 정렬 후 가장 첫 번째 값을 출력하면 될 것 같다는 의견에 리팩토링 해보았다.

Pilates type의 두 번째 인덱스에 있는 가격을 기준으로 정렬하기 위해 Comparator의 compare를 Overriding하여 사용했다.

 

static void printArray(Pilates[] pilates) {
    int min = Integer.MAX_VALUE;
    int index = -1;

    /* 방법 2 : 최솟값 찾기 */
    for(int i = 0; i < pilates.length; i++) {
        if(pilates[i].getPrice() < min) {
            min = pilates[i].getPrice();
            index = i;
        }
    }

    System.out.println("상암동에서 가장 저렴한 필라테스는 바로...");
    System.out.println("업체명 : " + pilates[index].getName());
    System.out.println("프로그램명 : " + pilates[index].getProgram());
    System.out.println("가격 : " + pilates[index].getPrice());

}

 

결과

상암동에서 가장 저렴한 필라테스는 바로...
업체명 : 마포요가
프로그램명 : 요가
가격 : 50000

'Java' 카테고리의 다른 글

Spring Boot H2 Database 사용하기  (0) 2023.12.27
자바 입문 전 알아두면 좋은 것 2  (0) 2023.12.14
Eclipse 개발 환경 세팅  (1) 2023.11.21
Java 입문 전 알아두면 좋은 것  (0) 2023.11.14
[Spring Boot] Lombok  (0) 2023.10.24