[COS PRO 2급-Python] TV 애청자 A씨

Sunhee·2023년 6월 1일

COS PRO - Python 2급

목록 보기
23/44
post-thumbnail

[COS PRO 2급-Python] TV 애청자 A씨

문제 설명

A씨가 하루에 TV를 두 대 이상 트는 시간을 알아내려합니다. A씨는 매일 세 프로그램을 시청합니다. 프로그램 방송 시간이 겹칠 때 TV를 여러 대 켜서 모든 프로그램을 봅니다.
예를 들어 두 프로그램 방송 시간대가 겹치면 TV를 두 대 켜고, 세 프로그램 방송이 겹치면 TV를 세 대 켭니다.
세 프로그램 방영 시작 시각과 끝 시각이 담긴 2차원 배열 programs와 programs의 세로길이 programs_len이 매개변수로 주어질 때, 하루에 TV를 2대 이상 트는 총 시간을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.



매개변수 설명

3개의 프로그램이 시작되는 시각과 끝나는 시각이 담긴 2차원 배열 programs와 programs의 행 길이 programs_len이 solution 함수의 매개변수로 주어집니다.

  • programs_len의 값은 항상 3입니다.
  • programs 배열의 각 원소는 각 프로그램의 방송 시간이 [시작 시각, 끝 시각] 형태로 들어있습니다.
  • 프로그램의 시작 시각과 끝 시각은 0 이상 24 이하의 정수입니다.
  • 프로그램의 시작 시각은 끝 시각보다 항상 빠릅니다.



return 값 설명

A 씨가 TV를 2대 이상 트는 총 시간을 return 해주세요


예시



알고리즘 구상

▶ 사용하고 있는 프로그램이 2개 이상일 때만 TV를 틀어야 함으로 i >= 1이 아닌 i >= 2로 바꿔준다.



내가 쓴 코드!

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean

def solution(programs):
	answer = 0
	used_tv = [0] * 25
	
	for program in programs:
		for i in range(program[0], program[1]):
			used_tv[i] = used_tv[i] + 1
			
	for i in used_tv:
		if i >= 2:
			answer = answer + 1
	return answer



느낀점

문제를 차근차근 읽어보고 코드와 읽어보자.


0개의 댓글