[COS PRO 2급] 3차 8번_TV 애청자 A씨(C)

seoyeon·2022년 9월 5일
1

코딩테스트

목록 보기
2/3

문제

완성 코드

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] >= 2)
            answer++;

    return answer;
}

if(used_tv[i] >= 1)
이 코드를 다음과 같이 변경해주자.
if(used_tv[i] <= 2)
TV를 동시에 두대 이상 트는 시간을 알아내야하기 때문에 2로 변경해야한다.

코드해석

가장 중요한 것은 a시부터 b시까지 TV를 틀었다면 b-1시간 틀었다는 것이다.

  • answer : TV를 2대 이상 트는 총 시간을 return 할 변수이다
  • used_tv : n시에 TV를 몇대 틀었는지 담을 배열이다 (0~24)
  • 중첩 for문
    i : 0 ~ programs_len -1
    j : programs[i][0] ~ programs[i][1]-1까지 반복
ijused_tv
01~5[1,2,3,4]
13~4[3,4]
22~7[2,3,4,5,6]

used_tv는 [0, 1, 2, 3, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]이다.

used_tv 배열에 2 이상인 요소는 2, 3, 4, 5로 4개이므로
answer은 4이다.

profile
꾸준히 공부하는 개발자가 되고 싶습니다✋

0개의 댓글

관련 채용 정보