mun dev

[COS PRO 1급] 2-1 도서 대여점 운영 자바(Java) 본문

알고리즘/COS PRO 1급

[COS PRO 1급] 2-1 도서 대여점 운영 자바(Java)

mndev 2023. 11. 25. 16:37

문제링크

 

구름HOME

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

문제유형

프로그램 빈 칸 채우기 문제

 

문제

class Main {
    interface Book{
        public int getRentalPrice(int day);
    }
    
    class ComicBook _____ {
        _____ {
            int cost = 500;
            day -= 2;
            if(day > 0)
                cost += _____;
            return cost;
        }
    }
    
    class Novel _____ {
       _____ {
            int cost = 1000;
            day -= 3;
            if(day > 0)
                cost += _____;
            return cost;
        }
    }

    public int solution(String[] bookTypes, int day) {
        Book[] books = new Book[50];
        int length = bookTypes.length;
        for(int i = 0; i < length; ++i){
            if(bookTypes[i].equals("comic"))
                books[i] = new ComicBook();
            else if(bookTypes[i].equals("novel"))
                books[i] = new Novel();   
        }
        int totalPrice = 0;
        for(int i = 0; i < length; ++i)
            totalPrice += books[i].getRentalPrice(day);
        return totalPrice;
    }

 

문제 풀이

class Main {
    interface Book{
        public int getRentalPrice(int day);
    }
    
    class ComicBook implements Book {
        public int getRentalPrice(int day){
            int cost = 500;
            day -= 2;
            if(day > 0)
                cost += 400;
            return cost;
        }
    }
    
    class Novel implements Book {
        public int getRentalPrice(int day){
            int cost = 1000;
            day -= 3;
            if(day > 0)
                cost += 300;
            return cost;
        }
    }

    public int solution(String[] bookTypes, int day) {
        Book[] books = new Book[50];
        int length = bookTypes.length;
        for(int i = 0; i < length; ++i){
            if(bookTypes[i].equals("comic"))
                books[i] = new ComicBook();
            else if(bookTypes[i].equals("novel"))
                books[i] = new Novel();   
        }
        int totalPrice = 0;
        for(int i = 0; i < length; ++i)
            totalPrice += books[i].getRentalPrice(day);
        return totalPrice;
    }