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

Cos Pro 1급 - 샘플 문제 풀이 3차 8번 (continue와 break)

by 우공80 2022. 10. 20.
728x90

교실에 필요한 선풍기 개수 구하기

문제 지문 #8


교실에 선풍기가 4대 있습니다. 선풍기는 한 대당 학생 k명에게 바람을 보냅니다. 모든 학생에게 바람을 보내기 위해서 선풍기를 몇 대 더 구매해야 할지 구하려고 합니다.

예를 들어, 선풍기 한 대당 학생 3명에게 바람을 보낼 수 있을 때, 한 교실당 학생 수가 [15, 17, 19, 10, 23] 명이고 선풍기가 4대 있으면 교실당 학생 [3, 5, 7, 0, 11] 명을 위해 선풍기를 더 구매해야 합니다. 이때, 교실별로 선풍기가 [1, 2, 3, 0, 4] 대씩 더 필요하니 총 선풍기 10대를 추가로 구매해야 합니다.

선풍기가 바람을 보내는 학생 수 k와 교실별 학생 수가 담긴 배열 student가 주어질 때, 선풍기를 최소 몇 대 사야 하는지를 return 하도록 solution 메서드를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.


매개변수 설명

선풍기가 바람을 보내는 학생 수 k와 교실별 학생 수가 담긴 배열 student가 solution 메소드의 매개변수로 주어집니다.

  • 선풍기가 바람을 보내는 학생 수 k는 1 이상 25 이하인 정수입니다.
  • 한 교실엔 1명 이상 1,000명의 학생이 있습니다.
  • 교실은 1개 이상 100개 이하가 있습니다.

return 값 설명

선풍기를 최소 몇 대 사야 하는지를 return 합니다.


예시

k student return
1 [4, 4, 4, 4] 0
3 [15, 17, 19, 10, 23] 10


예시 설명

예시 #1
이미 설치된 선풍기 4대로 모든 학생을 시원하게 해줄 수 있습니다.

예시 #2
문제에 나온 예와 같습니다.

728x90

 

혼자 풀이


한줄한 줄 고치기 문제입니다. break와 continue도 한 줄 고치기에서 자주 출제되는 유형입니다.
문제 자체는 어렵지 않았습니다.

 

/********************************************************
   3차 8번 교실에 필요한 선풍기 개수 구하기
 *******************************************************/
class MySolution {
    public int solution(int k, int[] student) {
        int answer = 0;
        for(int i = 0; i < student.length; i++){
            student[i] -= 4*k;
            if(student[i] <= 0)
//                break;
                continue;
            answer += (student[i] + k - 1) / k;
        }
        return answer;
    }
    
    // 아래는 테스트케이스 출력을 해보기 위한 main 메소드입니다. main 메소드는 잘못된 부분이 없으니, solution 메소드만 수정하세요.
    public static void main(String[] args) {
        MySolution sol = new MySolution();
        int k1 = 1;
        int[] student1 = {4, 4, 4, 4};
        int ret1 = sol.solution(k1, student1);
        
        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("solution 메소드의 반환 값은 " + ret1 + " 입니다.");
        
        int k2 = 3;
        int[] student2 = {15, 17, 19, 10, 23};
        int ret2 = sol.solution(k2, student2);
        
        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("solution 메소드의 반환 값은 " + ret2 + " 입니다.");
    }
}

 

정답

정답이 혼자 풀이와 같습니다.

첨부 파일

프로젝트 파일 전체를 첨부합니다.
Solution 이 문제, CorrectSolution 이 정답, MySolution이 제가 푼 것입니다.
"Project from existing sources..." 메뉴에서 불러다 쓰시면 됩니다.

ThirdQuestion8.zip
0.01MB

출처: https://www.ybmit.com/cos_pro/cos_pro_r_test.jsp

728x90

댓글