반응형
import sys
n = int(sys.stdin.readline())
mm = [] #mm은 회의실 목록
temp = 0
count = 0
for _ in range(n):
start, end = map(int, sys.stdin.readline().split())
mm.append([end,start])
mm = sorted(mm)
for i in range(n):
if i == 0:
temp = mm[i][0]
count += 1
else:
if temp <= mm[i][1]:
temp = mm[i][0]
count += 1
print(count)
설명
그리디 알고리즘을 사용한다. 하지만 회의실 목록을 정렬을 할 때, 끝나는 시간을 기준으로 정렬을 해야해서, 리스트에 값을 넣을때 end가 먼저 오도록 넣었다. 이후에 포문을 n만큼 돌려서 i == 0 일때, temp에 end 값을 저장하고, count를 1 올려준다. 그리고 그 이후로는 temp 보다 i번째 회의실 목록의 시작 시간이 크거나 같을때, temp를 변경하고 count를 1 올려주는 식으로 코딩하였다.
문제점
구현자체는 문제 없었는데, 문제를 꼼꼼히 안 읽어서 회의 간에 끝나는 시간과 시작하는 시간이 같아도 되는 지 헷갈려서, 한번 틀린 후에 <를 <=로 수정하여 제출하니 바로 맞았다.
반응형
'코딩 이야기 > 백준 풀이' 카테고리의 다른 글
백준 1261번: 알고스팟 파이썬 코드(다익스트라) (0) | 2021.07.09 |
---|---|
백준 9019번: DSLR 파이썬 코드(BFS) (0) | 2021.05.30 |
백준 15686번: 치킨 배달 파이썬 코드(백트래킹) (0) | 2021.05.09 |
백준 13549번: 숨바꼭질 3 파이썬 코드(bfs) (0) | 2021.05.08 |
백준 1912번: 최소비용 구하기 파이썬 코드(다익스트라) (0) | 2021.05.08 |