🌞Algorithm/🔥Baekjoon

[Baekjoon] 9951_Word Extraction

뿌야._. 2025. 1. 17. 15:41
문제(출처: https://www.acmicpc.net/problem/9951)

< Word Extraction >

 

문제 풀이 

 

HashSet에 단어를 저장한 뒤 정렬하여 출력한다.

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.StringTokenizer;

public class _9951_ { // Word Extraction

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		String str = "";
		HashSet<String> set = new HashSet<>();

		while (!(str = bf.readLine()).equals("#")) {
			st = new StringTokenizer(str);

			while (st.hasMoreTokens()) {
				str = st.nextToken();
				String word = "";
				boolean flag = false;
				for (int i = 0; i < str.length(); i++) {
					if (Character.isAlphabetic(str.charAt(i)) || Character.isDigit(str.charAt(i))) {
						if (Character.isAlphabetic(str.charAt(i))) {
							flag = true;
						}
						word += Character.toLowerCase(str.charAt(i));
					}
				}
				if (word.equals("") || !flag) {
					continue;
				}
				set.add(word);
			}

			ArrayList<String> list = new ArrayList<>(set);
			Collections.sort(list);
			set.clear();

			for (String x : list) {
				bw.write(x + "\n");
			}
			bw.write("\n");
		}
		bw.flush();
	}
}
변수)
str : 문장
set : 단어 저장하는 HashSet
word : 단어
flag : 알파벳 여부
list : HashSet -> list

 

#이 입력되기 전까지 문장을 입력받아 다음 과정을 반복한다.

 

1) 공백 기준으로 자른 단어를 숫자와 알파벳만 추출한다.

2) 알파벳 또는 알파벳+숫자로 이루어져 있다면 HashSet에 추가한다.

3) HashSet을 ArrayList로 변환한 후 오름차순으로 정렬한다.

4) ArrayList를 출력한다.



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 6973_Dynamic Dictionary Coding  (0) 2025.01.21
[Baekjoon] 29934_Important Messages  (1) 2025.01.20
[Baekjoon] 11518_Morse  (0) 2025.01.16
[Baekjoon] 4775_Spelling Be  (1) 2025.01.15
[Baekjoon] 18294_Biodiversity  (0) 2025.01.14