• 문제 링크
30034번: Slice String
첫 번째 줄에는 문자 구분자의 개수 $N$이 주어진다. $(1 \le N \le 1\,000)$ 두 번째 줄에는 $N$개의 문자 구분자가 공백으로 구분되어 주어진다. 세 번째 줄에는 숫자 구분자의 개수 $M$이 주어진다. $(1
www.acmicpc.net
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class Main {
static Set<String> set = new HashSet<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
addDelim(Integer.parseInt(br.readLine()), br.readLine());
addDelim(Integer.parseInt(br.readLine()), br.readLine());
removeDelim(Integer.parseInt(br.readLine()), br.readLine());
StringBuilder delim = new StringBuilder();
for (String s : set) delim.append(s).append("|");
delim.append(" ");
br.readLine();
StringTokenizer st = new StringTokenizer(br.readLine(), delim.toString());
while (st.hasMoreTokens()) sb.append(st.nextToken()).append("\n");
bw.write(sb.toString());
bw.flush();
}
private static void addDelim(int n, String s) {
StringTokenizer st = new StringTokenizer(s);
while (n-- > 0) set.add(st.nextToken());
}
private static void removeDelim(int n, String s) {
StringTokenizer st = new StringTokenizer(s);
while (n-- > 0) set.remove(st.nextToken());
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 28446 볼링공 찾아주기 - Data Structure / Java (0) | 2023.10.10 |
---|---|
[백준] 26042 식당 입구 대기 줄 - Data Structure / Java (0) | 2023.10.09 |
[백준] 14235 크리스마스 선물 - Data Structure / Java (0) | 2023.10.07 |
[백준] 18268 Cow Gymnastics - Brute Force / Java (0) | 2023.10.06 |
[백준] 8891 점 숫자 - Brute Force / Java (0) | 2023.10.05 |
댓글