• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

회의실 배정

23.09.08 17:09 작성 조회수 225

0

n = int(input())
n_list = [list(map(int, input().split())) for _ in range(n)]

n_list.sort(key=lambda x: (x[1], x[0]))

cnt = 1
cur = n_list[0][1]

for i in range(n):
    if cur <= n_list[i][0]:
        cur = n_list[i][1]
        cnt += 1

print(cnt)

위 코드로 강사님이 제시해주신 케이스는 다 통과하는데,
동일한 문제임에도 백준 1931번은 틀렸습니다로 출력됩니다.

 

cnt=0, cur=0으로 고쳐서 해결하긴 했는데, 첫번째 회의는 무조건 회의실에 배정된다고 생각하는게 왜 틀린 생각인지 모르겠어서 질문 드리게 되었습니다.

 

감사합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요^^

아래 코드처럼 for문을 1부터 돌려야 합니다.

n = int(input())
n_list = [list(map(int, input().split())) for _ in range(n)]

n_list.sort(key=lambda x: (x[1], x[0]))

cnt = 1
cur = n_list[0][1]

for i in range(1, n):
    if cur <= n_list[i][0]:
        cur = n_list[i][1]
        cnt += 1

print(cnt)

백준문제는 회의의 시작시간과 끝나는 시간이 같은 회의도 입력될 수 있다는 사실 때문입니다.

입력을

2

3 3

3 3

입력해 보세요. 답은 2입니다. 님 코드는 3이 나올겁니다.

감사합니다!!