• 문제 링크
4675번: Word Amalgamation
The input file contains four parts: 1) a dictionary, which consists of at least one and at most 100 words, one per line; 2) a line containing XXXXXX, which signals the end of the dictionary; 3) one or more scrambled 'words' that you must unscramble, each o
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.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
public class Main {
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();
Map<String, Set<String>> map = new HashMap<>();
String s;
while ((s = br.readLine()).charAt(0) != 'X') {
char[] arr = s.toCharArray();
Arrays.sort(arr);
String key = String.valueOf(arr);
Set<String> set = map.getOrDefault(key, new TreeSet<>());
set.add(s);
map.put(key, set);
}
while ((s = br.readLine()).charAt(0) != 'X') {
char[] arr = s.toCharArray();
Arrays.sort(arr);
String key = String.valueOf(arr);
if (map.containsKey(key)) for (String value : map.get(key)) sb.append(value).append("\n");
else sb.append("NOT A VALID WORD\n");
sb.append("******\n");
}
bw.write(sb.toString());
bw.flush();
}
}'Problem Solving > Baekjoon' 카테고리의 다른 글
| [백준] 6325 Definite Values - Data Structure / Java (0) | 2024.03.03 |
|---|---|
| [백준] 6474 Palindromes - Data Structure / Java (0) | 2024.03.02 |
| [백준] 14783 Eenie Meenie Miney Moe - Data Structure / Java (0) | 2024.02.29 |
| [백준] 5349 Duplicate SSN - Data Structure / Java (0) | 2024.02.28 |
| [백준] 14914 사과와 바나나 나눠주기 - Brute Force / Java (0) | 2024.02.27 |
댓글