Hi, There!
안녕하세요, 바오밥입니다.
목차
- 문제
- 풀이
문제
문제 내용
실에 선풍기가 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 합니다.
예시
예시 설명
예시 #1
이미 설치된 선풍기 4대로 모든 학생을 시원하게 해줄 수 있습니다.
예시 #2
문제에 나온 예와 같습니다.
풀이
풀이 코드 및 해설
def solution(k, student): # k : 선풍기가 커버하는 학생의 수, student : 학생 수를 담은 리스트
answer = 0
for s in student: # 학생 수가 담긴 리스트를 순회
s -= 4*k # 학생 수 - (미리 설치되어 있던 선풍기 4대 * 선풍기당 커버하는 학생 수) = 남은 학생 수
if s <= 0: # s가 4대로 커버가 안되는 경우에만 answer에 누적
continue
answer += (s + k - 1) // k # (남은 학생 수 + 선풍기당 커버하는 학생 수 - 1) // k = 최소 구매해야하는 선풍기 수
return answer
'Certificate > Cert - Cos Pro 1급' 카테고리의 다른 글
[Cos Pro 1급] 기출문제 3회차, 밥 먹고 머리 자르고 (0) | 2021.07.15 |
---|---|
[Cos Pro 1급] 기출문제 3회차, 팝업 스토어를 열 최적의 날짜 (0) | 2021.07.15 |
[Cos Pro 1급] 기출문제 3회차, 카프리카 수 (0) | 2021.07.15 |
[Cos Pro 1급] 기출문제 3회차, 소수의 합으로 표현하기 (0) | 2021.07.15 |
[Cos Pro 1급] 기출문제 3회차, 전광판 문구 출력 (0) | 2021.07.15 |