반응형
02-14 07:18
- Today
- Total
Link
개발하는 고라니
[백준] 13701번 : 중복 제거 본문
반응형
13701번: 중복 제거
문제: N개의 정수 A1, A2, ..., AN 을 읽고, 이들 중에서 반복되는 수를 제외하고 남은 N'개의 수 B1, B2, ..., BN’ 을 입력된 순서대로 출력하시오. 이때, 0 ≤ Ai < 225 = 33554432, i=1,2,…,N. 입력의 개수 N은 1
www.acmicpc.net
[Collection 사용]
사실 이 문제의 알고리즘 카테고리는 '비트마스킹'이지만,,, 비트마스킹으로 어떻게 풀어야할지 몰라 3가지 방법으로 풀었다.
1) Set
2) boolean[]
3) Map
방법은 간단하다. 각 자료구조에 특정 값이 없다면 추가하고, 특정 값이 있다면 스킵한다.
# Code </>
1) Set
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Set<Integer> set = new HashSet<>();
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
while(st.hasMoreTokens()){
int val = Integer.parseInt(st.nextToken());
if(set.add(val))
sb.append(val).append(' ');
}
System.out.println(sb.toString());
}
2) Array
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
boolean[] visit = new boolean[1 << 25];
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
while(st.hasMoreTokens()){
int val = Integer.parseInt(st.nextToken());
if(!visit[val]) {
visit[val] = true;
sb.append(val).append(' ');
}
}
System.out.println(sb.toString());
}
3) Map
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Map<Integer, Integer> map = new HashMap<>();
StringBuilder sb = new StringBuilder();
int idx = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
while(st.hasMoreTokens()){
int val = Integer.parseInt(st.nextToken());
if(!map.containsKey(val)) {
map.put(val, idx++);
sb.append(val).append(' ');
}
}
System.out.println(sb.toString());
}
반응형
'Programming > 백준' 카테고리의 다른 글
[백준] 16985번 : Maaaaaaaaaze (0) | 2021.03.25 |
---|---|
[백준] 16954번 : 움직이는 미로 탈출 (0) | 2021.03.24 |
[백준] 1644번 : 소수의 연속합 (0) | 2021.03.23 |
[백준] 1929번 : 소수 구하기 (0) | 2021.03.23 |
[백준] 1978번 : 소수 찾기 (0) | 2021.03.23 |
Comments