1seul357
[BOJ] 싸이버개강총회 본문
싸이버개강총회
문제
보영이는 알고리즘 동아리 HI-ARC를 운영하고 있다.
보영이와 운영진 일동은 20년도에 입학하는 신입생들을 맞이하기 위해 열심히 준비를 해왔으나, 전염병의 유행이 악화된 나머지 정부에서는 사회적 거리두기를 선언했고 그에 따라 학교에서는 교내 모든 동아리에 오프라인 모임을 자제하라는 공지를 하기에 이르렀다. 오프라인에서 모임을 자제하라는 권고가 나온 어려운 상황에도 불구하고, 보영이는 기지를 발휘하여 개강총회를 미튜브 스트리밍으로 대체하는 결정을 하게 된다.
다음과 같이 출석부를 관리하기로 결심했다.
- 개강총회를 시작하기 전에, 학회원의 입장 확인 여부를 확인한다. 학회원의 입장 여부는 개강총회가 시작한 시간 이전에 대화를 한 적이 있는 학회원의 닉네임을 보고 체크한다. 개강총회를 시작하자마자 채팅 기록을 남긴 학회원도 제 시간에 입장이 확인된 것으로 간주한다.
- 개강총회를 끝내고 나서, 스트리밍을 끝낼 때까지 학회원의 퇴장 확인 여부를 확인한다. 학회원의 퇴장 여부는 개강총회가 끝나고 스트리밍이 끝날 때까지 대화를 한 적이 있는 학회원의 닉네임을 보고 체크한다. 개강총회가 끝나자마자 채팅 기록을 남겼거나, 개강총회 스트리밍이 끝나자마자 채팅 기록을 남긴 학회원도 제 시간에 퇴장이 확인된 것으로 간주한다.
이 때, 입장부터 퇴장까지 모두 확인된 학회원은 전부 몇 명인가?
해결방법
- set 사용해야 시간초과 발생하지 않는다.
- 채팅을 여러번 쓰는 경우가 있어서 answer와 ans 두개 만들어서 사용.
- answer에 동일한 이름이 있으면 새롭게 추가하지 않는다.
소스코드
S, E, Q = input().split()
ans = set()
answer = set()
while True:
try:
info = input()
time, student = info.split()
if time <= S:
ans.add(student)
if E <= time <= Q:
if student in ans and student not in answer:
answer.add(student)
except:
break
print(len(answer))
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ] 크로스워드 퍼즐 쳐다보기 (0) | 2022.08.20 |
---|---|
[BOJ] 회문 (0) | 2022.08.02 |
[BOJ] 서로 다른 부분 문자열의 개수 (0) | 2022.07.30 |
[BOJ] IPv6 (0) | 2022.07.29 |
[BOJ] 회문은 회문아니야!! (0) | 2022.07.28 |