본문 바로가기
Programming/Cos Pro 1급

Cos Pro 1급 - 샘플 문제 5차 10번 - 급여의 총합 구하기

by 우공80 2022. 11. 16.
728x90

문제 지문 #10


직업에 아르바이트, 판매사원이 있습니다. 직원들 급여의 총합을 계산하기 위해 아래와 같이 Job, PartTimeJob, SalesJob 클래스를 작성했습니다.

스크린샷 2018-10-19 오후 6.30.38.png

  • Job :
    • Job : 직업을 나타내는 클래스입니다.
    • salary : 직업의 급여를 나타냅니다. 초기 급여는 0입니다.
    • getSalary : 직업의 급여를 return 합니다.
  • PartTimeJob :
    • PartTimeJob : 아르바이트를 나타내는 클래스이며 Job을 상속합니다.
    • workHour : 아르바이트를 한 시간입니다.
    • payPerHour : 아르바이트의 시간당 급여입니다.
    • getSalary : 아르바이트 급여를 계산하여 return 합니다.
  • SalesJob :
    • SalesJob : 판매사원을 나타내는 클래스이며 Job을 상속합니다.
    • salesResult : 판매사원의 판매실적입니다.
    • payPerSale : 판매실적 당 급여입니다.
    • getSalary : 판매사원의 급여를 계산하여 return 합니다.

주어진 아르바이트, 판매사원 급여의 총합을 계산하려 합니다.

  • 아르바이트는 기본적으로 아르바이트를 한 시간 X 시간당 급여를 받으며 40시간 이상 근무 시 8시간만큼의 급여를 추가로 받습니다.
  • 판매사원은 기본적으로 판매실적 * 판매실적 당 급여를 받으며 판매실적이 10건이 넘으면 급여를 2배로, 20건이 넘으면 급여를 3배로 받습니다.

아르바이트의 정보가 담긴 2차원 배열 partTimeJobs, 판매사원의 정보가 담긴 2차원 배열 salesJobs가 매개변수로 주어질 때, 모든 직원들 급여의 총합을 return 하도록 solution 메서드를 작성하려 합니다. 위 클래스 구조를 참고하여 주어진 코드의 빈칸을 적절히 채워 전체 코드를 완성해주세요.


#####매개변수 설명
아르바이트의 정보가 담긴 2차원 배열 partTimeJobs, 판매사원의 정보가 담긴 2차원 배열 salesJobs가 solution 메서드의 매개변수로 주어집니다.

  • partTimeJobs는 길이가 1 이상 10 이하인 2차원 배열입니다.
  • partTimeJobs의 각 원소는 [아르바이트를 한 시간, 시간당 급여]입니다.
    • 아르바이트를 한 시간은 1 이상 100 이하입니다.
    • 시간당 급여는 1,000 이상 20,000 이하입니다.
  • salesJobs은 길이가 1 이상 10이하인 2차원 배열입니다.
  • salesJobs의 각 원소는 [판매실적, 판매실적 당 급여]입니다.
    • 판매실적은 1 이상 30 이하입니다.
    • 판매실적 당 급여는 1,000 이상 20,000 이하입니다.

#####return 값 설명
모든 직원들 급여의 총합을 return 합니다.


#####입출력 예

partTimeJobs salesJobs return
[[10, 5000], [43, 6800], [5, 12800]] [[3, 18000], [12, 8500]] 718800

#####입출력 예 설명

첫 번째 아르바이트에게 50,000(10 * 5,000)을 지급합니다.
두 번째 아르바이트에게 346,800(43 * 6,800 + 8 * 6,800)을 지급합니다.
세 번째 아르바이트에게 64,000(5 * 12,800)을 지급합니다.
첫 번째 영업사원에게 54,000(3 * 18,000)을 지급합니다.
두 번째 영업사원에게 204,000(12 * 8,500 * 2)을 지급합니다.
따라서 급여의 총합은 718,800입니다.

728x90

 

혼자 풀이


빈칸 채우기 문제입니다. 빈칸은 extends 문을 쓰는 것과 함수 구현하는 부분으로 아주 쉽습니다. 이런 문제가 실제 시험에 나면 좋겠습니다. 어려운 부분이 없으므로 자세한 설명은 생략합니다.

class Job {
        public int salary;

        public Job() {
            this.salary = 0;
        }
        
        public int getSalary() {
            return salary;
        }
    }

		//class PartTimeJob @@@ {
    class PartTimeJob extends Job{
        public int workHour, payPerHour;

        public PartTimeJob(int workHour, int payPerHour) {
            this.workHour = workHour;
            this.payPerHour = payPerHour;
        }
				// @@@{
        public int getSalary()  {
            salary = workHour * payPerHour;
            if(workHour >= 40)
                salary += (payPerHour * 8);

            return salary;
        }
    }

    // class SalesJob @@@ {
		class SalesJob extends Job{
        public int salesResult, payPerSale;

        public SalesJob(int salesResult, int payPerSale) {
            this.salesResult = salesResult;
            this.payPerSale = payPerSale;
        }
				// @@@{
        public int getSalary()  {
            if(salesResult > 20)
                salary = salesResult * payPerSale * 3;
            else if(salesResult > 10)
                salary = salesResult * payPerSale * 2;
            else
                salary = salesResult * payPerSale;

            return salary;
        }
    }

    public int solution(int[][] partTimeJobs, int[][] salesJobs) {
        int answer = 0;

        for(int i = 0; i < partTimeJobs.length; i++) {
            PartTimeJob partTimeJob = new PartTimeJob(partTimeJobs[i][0], partTimeJobs[i][1]);
            answer += partTimeJob.getSalary();
        }

        for(int i = 0; i < salesJobs.length; i++) {
            SalesJob salesJob = new SalesJob(salesJobs[i][0], salesJobs[i][1]);
            answer += salesJob.getSalary();
        }

        return answer;
    }

 

정답


혼자 풀이와 정답이 동일합니다.


실습은 아래 참고


2022.10.25 - [Programming/Cos Pro 1급] - Cos Pro 1급 공부 사이트 추천 - 구름 에듀(https://edu.goorm.io/)

 

Cos Pro 1급 공부 사이트 추천 - 구름에듀(https://edu.goorm.io/)

구름 EDU??? YBM 공식 사이트에서 받은 문제 지문/문제 코드/정답 코드를 intellij에서 공부하다가 후배 추천으로 구름 에듀를 알게 되었습니다. 문제 지문 따로 문제 코드 따로 열어보는 게 여간 불

woogong80.tistory.com

728x90

댓글