상세 컨텐츠

본문 제목

99클럽 코테 스터디 18일차 TIL + 오늘의 학습 키워드 : 스택/큐

본문

728x90
반응형

이 코드는 대기줄을 관리하고 최대 대기 인원 수와 그 순간의 마지막 학생 번호를 추적합니다.

## Python 코드

```python
from collections import deque
import sys

def main():
    input = sys.stdin.read
    data = input().splitlines()
    
    n = int(data[0])  # 대기줄에 있는 학생 수
    queue = deque()
    max_queue_size = 0
    last_student_number_at_max = -1

    for i in range(1, n + 1):
        command = list(map(int, data[i].split()))
        type = command[0]
        
        if type == 1:
            student_number = command[1]
            queue.append(student_number)  # 줄 세우기

            # 최대 대기 학생 수와 그 순간의 마지막 학생 번호 갱신
            if len(queue) > max_queue_size:
                max_queue_size = len(queue)
                last_student_number_at_max = student_number
            elif len(queue) == max_queue_size:
                # 여러 번 대기 인원 같을 때 가장 작은 번호로 갱신
                last_student_number_at_max = min(last_student_number_at_max, student_number)
        
        elif type == 2:
            if queue:
                queue.popleft()  # 대기줄에서 학생 제거

    print(max_queue_size, last_student_number_at_max)

if __name__ == "__main__":
    main()
```

### 코드 설명
- **입력 처리**: `sys.stdin.read`를 사용하여 모든 입력을 한 번에 읽고, 각 줄을 분리하여 처리합니다.
- **큐 사용**: `collections.deque`를 사용하여 대기줄을 큐로 구현합니다.
- **명령 처리**: 각 명령에 따라 학생을 추가하거나 제거하며, 최대 대기 인원 수와 그 순간의 마지막 학생 번호를 추적합니다.
- **출력**: 최대 대기 인원 수와 그 순간의 마지막 학생 번호를 출력합니다.

728x90
반응형

관련글 더보기