-
[Java] BOJ 19583 싸이버개강총회개발자 취업/코딩테스트 준비 2023. 6. 11. 22:48반응형
19583번: 싸이버개강총회
첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는
www.acmicpc.net
정답 코드
- 문자열 처리 + 조건문 + 해싱
- Window 터미널에서 EOF 입력 방법 : [ctrl + z]
import java.io.*; import java.util.*; public class Main { static BufferedReader br; static BufferedWriter bw; static StringTokenizer st; static HashSet<String> set; public static void main(String[] args) throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); bw = new BufferedWriter(new OutputStreamWriter(System.out)); st = new StringTokenizer(br.readLine(), " "); String s = st.nextToken(); String e = st.nextToken(); String f = st.nextToken(); int sTime = StringToTime(s); int eTime = StringToTime(e); int fTime = StringToTime(f); String str = ""; set = new HashSet<>(); int cnt = 0; while ((str = br.readLine()) != null) { st = new StringTokenizer(str, " "); String t = st.nextToken(); String name = st.nextToken(); int nTime = StringToTime(t); if (nTime <= sTime) { set.add(name); } if (eTime <= nTime && nTime <= fTime) { if (set.contains(name)) { set.remove(name); cnt++; } } } System.out.println(cnt); } private static int StringToTime(String str) { st = new StringTokenizer(str, ":"); return Integer.parseInt(st.nextToken()) * 60 + Integer.parseInt(st.nextToken()); } }
'개발자 취업 > 코딩테스트 준비' 카테고리의 다른 글
[Java] BOJ 1394 암호 (0) 2023.06.12 [Java] BOJ 1897 토달기 (0) 2023.06.12 [Java] BOJ 17479 정식당 (0) 2023.06.11 [Java] BOJ 2866 문자열 잘라내기 (0) 2023.06.11 [JAVA] BOJ 1063 킹 (0) 2023.06.10