HackerRank/Algorithms

[HackerRank C] Implementation : Angry Professor

ruming 2021. 8. 1. 09:47

지각한 사람이 몇명인지에 따라 수업이 진행될지 취소될지 결정된다.

n명의 학생이 있고, 배열 a에 도착시간이 저장된다. 0초과면 지각이고, 

지각하지 않은 학생이 k명 이상일 때 수업이 진행된다.

 

첫번째 예제때문에 좀 헷갈렸는데, 수업이 캔슬되면 YES를 출력, 캔슬되지 않으면 NO를 출력하면 된다.

char* angryProfessor(int k, int a_count, int* a) {
    int n = a_count;
    int i, ck=0;
    char* s = malloc(10);
    for(i=0; i<n; i++){
        if(a[i]<=0) ck++;
    }
    if(ck < k) s = "YES";
    else s = "NO";
    return s;
}

먼저 대답을 저장할 문자열 하나를 선언해 메모리를 10만큼 할당해주었다.

ck에는 지각하지 않은 사람의 수가 저장되는데, for문으로 배열 a에서 0이하인 사람을 찾아낸다.

다음으로 ck와 k를 비교해 지각하지 않은 사람이 k보다 적으면 문자열에 YES를, 이상이면 NO를 저장해 s를 반환한다.