Algorithm/백준 알고리즘

백준_19583 싸이버개강총회(자바) / 문자열

미스터로즈 2021. 7. 23. 10:08

시간&메모리 제한

 

문제

 

입력&출력

 

문제풀이

package com.Back;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;

public class Back_19583 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		String start = st.nextToken();
		String End = st.nextToken();
		String Stream = st.nextToken();
		int ans=0;
		//시작할 때 출첵
		HashSet<String> s = new HashSet<>();
		//끝날 때 출첵
		HashSet<String> e = new HashSet<>();
		String temp;
		
		while((temp=br.readLine())!=null) {
			if(start.compareTo(temp.split(" ")[0])>=0) {
				s.add(temp.split(" ")[1]);
			}else if(End.compareTo(temp.split(" ")[0])<=0 && Stream.compareTo(temp.split(" ")[0])>=0 ) {
				e.add(temp.split(" ")[1]);
			}
		}
		for (String tmp : e) {
			if(s.contains(tmp)) {
				ans++;
			}
		}
		System.out.println(ans);
	}
}

- 문자열을 이용하는 문제입니다. 

- ArrayList를 사용하는 경우에 시간 초과 오류가 뜨게 됩니다.

- 찾아보면서 HashSet으로 바꿔서 해결을 했습니다.

- 시간에 대한 비교는 compareTo라는 메소드를 활용해서 문제풀이를 진행했습니다.