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시간 틀었다는 것이다.
i | j | used_tv |
---|---|---|
0 | 1~5 | [1,2,3,4] |
1 | 3~4 | [3,4] |
2 | 2~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이다.