본문 바로가기

cospro2급/cospro_5차

2021-05-23 / 2번 문제

cospro 2번 문제

 

공강시간 구하기

 

문제 설명

공강이란 수업 시간 사이에 수업이 없이 비는 시간이다. 시간표가 주어질 때 공강은 총 몇 시간인지 구하려 한다. 시간표 상에 수업이 있는 시간은 1로, 수업이 없는 시간은 0으로 표시한다. 모든 수업은 정각에 시작해 1시간 뒤에 끝난다.

공강이 총 몇 시간인지 구하기 위해 다음과 같이 프로그램 구조를 작성했다.

 

   1. 가장 첫 수업 시작 시각을 구한다.

   2. 가장 마지막 수업 시작 시각을 구한다.

   3. 1과 2 사이에서 수업이 없는 시간을 센다.

 

시간표를 표현한 배열 time_table, 배열 time_table의 길이 time_table_len이 매개변수로 주어질 때, 공강은 총 몇 시간인지 return 하는 solution 함수를 완성한다.

 

매개변수 설명

시간표를 표현한 배열 time_table, 배열 time_table의 길이 time_table_len이 매개변수로 주어진다.

  time_table_len은 5 이상 15 이하인 자연수이다.

 시간표에서 수업이 있는 시간은 1로 표현하고 수업이 없는 시간은 0이다.

  time_table의 원소는 0 또는 1이다.

 

return 값 설명

공강이 총 몇 시간인지 return 한다.

 

예시

 

예시 설명

 

코드 설명

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

//수업이 끝나는 시간 찾기
int func_a(int time_table[], int time_table_len) {
    int answer = 0;
    for(int i = time_table_len-1; i >= 0; i--) {
        if(time_table[i] == 1) {
            answer = i;
            break;
        }
    }
    return answer;
}

//공강 찾기
int func_b(int time_table[], int class1, int class2) {
    int answer = 0;
    for(int i = class1; i < class2; i++)
        if(time_table[i] == 0)
            answer++;
    return answer;
}

//수업이 시작하는 시간 찾기
int func_c(int time_table[], int time_table_len) {
    int answer = 0;
    for(int i = 0; i < time_table_len; i++) {
        if(time_table[i] == 1) {
            answer = i;
            break;
        }
    }
    return answer;
}

int solution(int time_table[], int time_table_len) {
    int answer = 0;
    int first_class = func_c(time_table,time_table_len);
    int last_class = func_a(time_table,time_table_len);
    answer = func_b(time_table,first_class,last_class);
    return answer;
}

int main() {
	int time_table[] = {1, 1, 0, 0, 1, 0, 1, 0, 0, 0};
	int time_table_len = 10;
	int ret = solution(time_table, time_table_len);

	printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

 

 

 

 

goorm

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

www.goorm.io

 

'cospro2급 > cospro_5차' 카테고리의 다른 글

2021-05-25 / 5번 문제  (0) 2021.05.25
2021-05-25 / 6번 문제  (0) 2021.05.25
2021-05-24 3번 문제  (0) 2021.05.24
2021-05-24 / 4번 문제  (0) 2021.05.24
2021-05-23 / 1번 문제  (0) 2021.05.23