GURU/PYTHON & HTML

[PYTHON Unit 11: 파이썬 실전] 2차원 list 다루기

myejinni 2022. 1. 11. 10:55
# 2022년 1월 서울,경기 지역의 코로나 확진자 발생일이
# 2차원 리스트 [[시작일, 종료일]],[시작일, 종료일],..]로 표현할 경우
# 1월에 코로나가 발생한 날이 총 몇 일인지 계산하시오.

covid = [[3, 5], [7, 9], [17, 17], [21, 28], [30, 30]]

print("1월 서울, 경기 코로나 발생일: %s" %covid)

result = 0

days = [False] * 31

for c in covid: #c=[3,5] -> [7,9] -> [17,17]...
    start = c[0]
    end = c[1]

    for i in range(start-1, end):
        days[i] = True

print("%s" %days)

print("1월 서울, 경기 코로나 발생일: %s" %result)

1월=31일까지 있다.

31개의 false를 찍어주고, 발생일의 경우 true로 바꿔주는 방식을 활용해보자.

위와 같이 코드를 작성하고, 알맞게 true로 바뀌는지 확인하기 위해 출력해보았다.

실행결과는 위와 같으며 의도대로 코로나 발생일에 false 값이 true로 변경된 것을 확인 가능하다.

 

# 2022년 1월 서울,경기 지역의 코로나 확진자 발생일이
# 2차원 리스트 [[시작일, 종료일]],[시작일, 종료일],..]로 표현할 경우
# 1월에 코로나가 발생한 날이 총 몇 일인지 계산하시오.

covid = [[3, 5], [7, 9], [17, 17], [21, 28], [30, 30]]

print("1월 서울, 경기 코로나 발생일: %s" %covid)

result = 0

days = [False] * 31

for c in covid: #c=[3,5] -> [7,9] -> [17,17]...
    start = c[0]
    end = c[1]

    for i in range(start-1, end):
        days[i] = True

#print("%s" %days)

for day in days:
    if day == True:
        result += 1
        
print("1월 서울, 경기 코로나 발생일: %s" %result)

true로 변경된 값을 카운트하며 코로나 발생일을 출력해 주는 코드를 최종적으로 작성했다.

 

실행 결과는 위와 같다.