https://www.acmicpc.net/problem/19583
접근 :
- 개강시간 전 입력된 메시지 -> 출석 체크인 에 등록(Set)
- 스트리밍 끝난 후 메시지 -> break 시간 순으로 정렬되어 있으므로 더 이상 확인 필요 X
- 총회 끝나기 전 입력된 메시지 -> 특별한 의미가 없으므로 continue
- 총회 끝난 후 부터 스트리밍 끝나기 전 메시지 -> set 을 확인 하면서 출석체크(출석 체크가 끝난 닉네임은 set 에서 제거)
코드구현 :
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] times = br.readLine().split(" ");
String input;
Set<String> check_in = new HashSet<>();
int ans = 0;
while((input = br.readLine()) != null){
String[] msg = input.split(" ");
//스트리밍이 끝난 후 채팅 기록은 더 이상 확인 X
if(times[2].compareTo(msg[0]) < 0) break;
//시작 전 채팅일 경우 체크인
if(times[0].compareTo(msg[0]) >= 0){
check_in.add(msg[1]);
continue;
}
//총회 시간은 지나감
if(times[1].compareTo(msg[0]) > 0) continue;
// 체크 아웃 확인 시간
if(check_in.contains(msg[1])){
ans++;
check_in.remove(msg[1]);
}
}
System.out.println(ans);
}
}
'JAVA > Coding Test' 카테고리의 다른 글
[JAVA] 백준 과제는 끝나지 않아!_스택 (0) | 2024.05.31 |
---|---|
[JAVA] 프로그래머스 연습 징검다리 (0) | 2024.05.30 |
[JAVA] 프로그래머스 연습 요격 시스템 (0) | 2024.05.28 |
[JAVA] 프로그래머스 kakao 순위 검색 (0) | 2024.05.28 |
[JAVA] 프로그래머스 연습 석유 시추 (0) | 2024.05.24 |