◇ 문제 설명
A씨가 하루에 TV를 두대 이상 트는 시간을 알아내려 합니다. A씨는 매일 세 프로그램을 시청합니다 .프로그램 방송 시간이 겹칠때는 TV를 여러대 켜서 모든 프로그램을 봅니다.
예를 들어 두 프로그램 방송 시간대가 겹치면 TV를 두대 켜고, 세프로그램 방송시간이 겹치면 TV를 세대 켭니다ㅣ .
세 프로그램 방영 시작 시각과 끝 시각이 담긴 2차원 배열 programs와 programs의 세로 길이 programs_len이 매개변수로 주어질때, 하루에 TV를 2대 이상 트는 총 시간을 return하도록 solution함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어 있기 때문에 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
◇ 매개변수 설명
3개의 프로그램이 시작되는 시각과 끝나는 시각이 담긴 2차원 배열 programs와 programs의 세로 길이 programs_len이 solution함수의 매개변수로 주어집니다.
▶ programs_len의 값은 항상 3입니다.
▶ programs배열의 각 원소는 각 프로그램의 방송 시간이 [시작 시각, 끝 시각]형태로 들어있습니다.
▶ 프로그램의 시작 시각과 끝시각은 0이상 24이하의 정수입니다.
▶ 프로그램의 시작 시각은 끝 시각보다 항상 빠릅니다.
◇ return값 설명
A씨가 TV를 2대 이상 트는 총 시간을 return해주세요.
◇ 예시
| programs | programs_len | return |
| [[1, 6], [3, 5], [2, 8]] | 3 | 4 |
◇ 예시 설명
2대의 TV를 트는 시간이 2시부터 3시까지, 5시부터 6시까지 총 2시간이고 3대의 TV를 트는 시간이 3시부터 5시까지 총 2시간 입니다 .따라서 TV를 두대이상 트는 시간을 총 4시간 입니다.
◇ 초기 내용

◇ 답안
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int programs[][2], int programs_len) {
int answer = 0;
int used_tv[25] = { 0, };
for(int i = 0; i < programs_len; i++)
for(int j = programs[i][0]; j < programs[i][1]; j++)
used_tv[j]++;
for(int i = 0; i < 25; i++)
if(used_tv[i] > 1)
answer++;
return answer;
}
int main() {
int programs[3][2] = {{1, 6}, {3, 5}, {2, 8}};
int programs_len = 3;
int ret = solution(programs, programs_len);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
◇ 답안 풀이
(※ 실행 흐름 순으로 해석됩니다.)
int solution(int programs[][2], int programs_len) {
int answer = 0;
//0이상 24이하이므로 used_tv의 방크기는 25
int used_tv[25] = { 0, };
//2개의 TV를 동시에 보는 시간을 구한다.
for(int i = 0; i < programs_len; i++)
for(int j = programs[i][0]; j < programs[i][1]; j++)
used_tv[j]++;
for(int i = 0; i < 25; i++)
//2개의 TV를 동시에 본 시간을 알아봐야하는데 used_tv[i]>=1을 하면, 1대의 TV를 본시간 모두 확인하므로, 부적절하다
//2개 이상의 TV를 시청하는 것이므로, used_tv[i] >1혹은 used_tv>=2가 적합하다.
if(used_tv[i] > 1)
answer++;
return answer;
}
◇ 실행결과

◇ 출처
COS PRO 2급 기출문제 - C언어 - 구름EDU
YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.
edu.goorm.io
'Cospro 2급 > C언어' 카테고리의 다른 글
| [3차] 문제7. 남은 재료로 주스 만들기 답안 및 풀이 (0) | 2021.05.31 |
|---|---|
| [6차] 문제10. 사과 박스 무게의 불량 검사 답안 및 풀이 (0) | 2021.05.30 |
| [6차] 문제9. 난 양말색이 달라도 잘 신는 착한 어린이 답안 및 풀이 (0) | 2021.05.30 |
| [6차] 문제8. 주어진 수와 뒤집은 수의 차 구하기 답안 및 풀이 (0) | 2021.05.30 |
| [6차] 문제7. 의자와 책상을 사고싶어요. 답안 및 풀이 (0) | 2021.05.30 |
댓글