미용실
문제
현재 미용실에서 커트를 받고 싶은 사람의 수가 N명이다. N명의 사람들은 각각 초 단위로 예약을 진행했다고 가정하자. 각 사람이 예약한 커트 시간은 시작 시각(start)과 종료 시각(end)으로 표시된다. 이를 배열로 나타낸다면 [start, end] 형태(원소가 2개인 1차원 배열)로 이해할 수 있을 것이다. 이때, 하루는 86,400초이므로, 시각 시각(start)은 0 이상 86,399 이하의 정수로 주어진다.
또한 미용사는 동시에 여러 명의 손님에 대하여 커트를 진행할 수 없다. 예를 들어 예약 시간이 [3000, 6000]인 손님과 [4000, 7000]인 손님 두 명이 있을 때, 두 손님을 모두 받는 것은 불가능하다. 또한, 손님들의 미용실 입장 시간 및 대기 시간은 0초라고 가정하자. 이때, 1명의 미용사가 받을 수 있는 손님의 수의 최댓값을 계산하는 프로그램을 작성하여라.
예를 들어, N=5명의 손님이 커트를 받고 싶은 상태라고 가정하자. 현재 예시에서 각 손님이 예약한 커트 시간은 [3, 7], [4, 8], [1, 2], [7, 10], [4, 7]이다. 이 경우 1명의 미용사가 받을 수 있는 예약자 수의 최댓값은 3이다.
> (원본 문서의 예약 구간 그림이 텍스트 추출 과정에서 유실되었다.)
입출력 예시
예시 1
입력
5, [[3, 7], [4, 8], [1, 2], [7, 10], [4, 7]]
출력
3
예시 2
입력
8, [[2, 7], [7, 10], [10, 13], [10, 12], [12, 15], [15, 16], [15, 18], [16, 17]]
출력
6
입력 조건
가장 먼저 예약자 수 N이 자연수로 주어진다. (N은 100,000보다 작거나 같은 자연수다.)
이어서 각 예약자가 원하는 커트 시간 정보가 담긴 배열 reserved가 주어진다. 배열은 행의 크기가 N이고, 열의 크기가 2인 형태의 2차원 배열이다. 각 손님에 대한 예약 시간은 [start, end] 형태로 주어진다. 각 손님에 대해 start는 0 이상 86,399 이하의 정수이며, end는 start+1 이상 86,400 이하의 정수이다.
출력 조건
한 명의 미용사가 받을 수 있는 최대한 많은 손님의 수를 반환하여라.
요구사항
- solution(N, reserved) 함수를 만들고 답을 반환해야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 출력이 글자 하나까지 기대값과 같아야 합니다. 줄 안의 빈칸은 다른 글자와 똑같이 봅니다.
- 케이스는 20개이고, 그 가운데 2개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 20개를 전부 통과해야 해결입니다.
예시
공개 케이스 2개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 20개를 전부 통과해야 해결입니다.
5, [[3, 7], [4, 8], [1, 2], [7, 10], [4, 7]]
3
8, [[2, 7], [7, 10], [10, 13], [10, 12], [12, 15], [15, 16], [15, 18], [16, 17]]
6
참고 사항
풀이에 도움이 되는 배경입니다. 지켜야 하는 규격은 위의 입출력 조건과 요구사항에 있습니다.
원본에서 모의고사 4회 1번입니다.
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 2개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
시간은 푸는 데 걸린 시간입니다. 입력을 읽는 시간은 푸는 분이 어쩔 수 없는 값이라 빼고 셉니다. 그리고 이 값은 각자 기기가 적어 보내는 값이라, 어느 기기에서 쟀는지 같이 적어 둡니다.
입력을 읽는 데 335ms (순위에서 뺀 시간입니다)
이 분이 코드를 비공개로 두셨습니다.
입력을 읽는 데 641ms (순위에서 뺀 시간입니다)
이 분이 코드를 비공개로 두셨습니다.