cospro 1번 문제
상담선생님은 너무 바빠요.
문제설명
학생 10명이 상담을 받기 위해 매일 한 명씩, 순서대로 상담실을 찾아간다. 상담은 상담 선생님이 계실 때에만 상담을 받을 수 있다. 또한 한번 상담실을 방문한 학생은 다시 상담실에 찾아가지 않는다. 선생님의 일정표가 주어질 때, 누가 상담을 받지 못했는지 알고 싶다. 일정표에는 선생님이 있는 날엔 "O"가 없는 날엔 "X"가 표시된다.
예를 들어, 선생님의 일엊ㅇ이 ["O", 'X", 'X","O", "O", "O", "X", "O", "X", "X"]라면 2번, 3번, 7번, 9번, 10번의 학생은 상담을 받지 못한다.
매개변수 설명
선생님의 일정을 담은 배열 schedule과 schedule의 길이 schedule_len이 매개변수로 주어진다.
schedule의 원소는 "O" 또는 "X"이다.
schedule_len은 항상 10이다.
return값 설명
상담을 받지 못한 학생들의 번호를 오름차순으로 정렬하여 return한다.
예시
예시 설명
1일 4일 5일 6일 8일에만 선생님이 상담실에 있으므로 2번 3번 7번 9번 10번 학생은 상담을 받지 못한다.
코드 설명
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(char* schedule[], int schedule_len) {
int x_count = 0; //상담 받지 못한 학생수
for(int i=0; i<10; i++)
if(schedule[i][0] == 'X')
x_count++;
int* answer = (int*)malloc(sizeof(int)*x_count);
for(int i=0, j=0; i<10; i++) {
if(schedule[i][0] == 'X') {
answer[j++] = i+1; //j는 상담이 가능한 날짜인지 확인하는 용도?
//i는 학생의 번호
}
}
return answer;
}
int main() {
char* schedule[] = {"O", "X", "X", "O", "O", "O", "X", "O", "X", "X"};
int* ret = solution(schedule, 10);
printf("solution 함수의 반환 값은 ");
for(int i=0; i<5; i++)
printf("%d, ", ret[i]);
printf("입니다.");
}
배열의 번호는 0부터 시작하기 때문에 학생의 번호와 맞춰주기 위해 i+1을 해준다.
goorm
구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.
www.goorm.io
'cospro2급 > cospro_4차' 카테고리의 다른 글
2021-05-20 (0) | 2021.05.20 |
---|---|
2021-05-20 (0) | 2021.05.20 |
201-05-19 (0) | 2021.05.19 |
2021-05-19 (0) | 2021.05.19 |
2021-05-18 (0) | 2021.05.18 |