
알고리즘 분류 : 구현
난이도 : 실버5
출처 : 백준 - 욱제는 결정장애야!!


Set을 이용한다.
입력을 받은 숫자가 처음으로 입력된 수인 경우 set에 add 한다.
입력을 받은 숫자가 두번쨰로 입력된 수인 경우 set에서 remove 한다.매 수를 입력 받을 때 마다 set의 크기의 최대값을 기록해서 출력한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
Set<Integer> set = new HashSet<>();
int max = 0;
for(int i=0;i<N*2;i++) {
int num = Integer.parseInt(st.nextToken());
if(set.contains(num))
set.remove(num);
else
set.add(num);
max = Math.max(max, set.size());
}
System.out.println(max);
}
}

간단한 구현 문제이다. Set을 이용해 중복처리를 하면 된다.