[백준] 5637. 가장 긴 단어
문제 링크
풀이 과정
문제에서 말하는 단어는 알파벳(a-z, A-Z)과 하이픈(-)으로만 이루어져 있습니다.
예를 들어, 단어와 다른 문자로 이루어진 문자열이 주어졌을 때의 각 문자열에서 가장 긴 단어들은 뽑아내면 위와 같습니다. 문자열 내부에 다른 문자들이 존재하면, 그 문자들을 제거한 뒤 단어를 확인해 보는 과정이 필요한 것을 알 수 있습니다.
따라서, 아래와 같은 순차적인 작업이 필요했습니다.
-
먼저, 한 줄을 입력 받아 양쪽 가장자리의 공백을 지운 뒤, 띄어쓰기를 기준으로 잘라 배열로 만듭니다.
-
각 요소를 순회하며, 다른 문자들을 띄어쓰기로 변경합니다.
-
각 요소에 대해 띄어쓰기로 구분되는 단어들을 다시 분류합니다.
-
이제 가장 긴 단어를 찾습니다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int max = 0;
String answer = "";
outer:
while (true) {
String[] splited = br.readLine().trim().split(" ");
for (int i = 0; i < splited.length; i++) {
splited[i] = splited[i].replaceAll("[^a-zA-Z-]", " ").trim();
String[] tmp = splited[i].split(" ");
for (int j = 0; j < tmp.length; j++) {
if (tmp[j].equals("E-N-D")) break outer;
if (tmp[j].length() > max) {
max = tmp[j].length();
answer = tmp[j].toLowerCase();
}
}
}
}
System.out.println(answer);
}
}
댓글남기기