[백준] 5637. 가장 긴 단어

최대 1 분 소요

문제 링크

[백준] 5637. 가장 긴 단어


풀이 과정

문제에서 말하는 단어는 알파벳(a-z, A-Z)과 하이픈(-)으로만 이루어져 있습니다.


예를 들어, 단어다른 문자로 이루어진 문자열이 주어졌을 때의 각 문자열에서 가장 긴 단어들은 뽑아내면 위와 같습니다. 문자열 내부에 다른 문자들이 존재하면, 그 문자들을 제거한 뒤 단어를 확인해 보는 과정이 필요한 것을 알 수 있습니다.


따라서, 아래와 같은 순차적인 작업이 필요했습니다.

  1. 먼저, 한 줄을 입력 받아 양쪽 가장자리의 공백을 지운 뒤, 띄어쓰기를 기준으로 잘라 배열로 만듭니다.

  2. 각 요소를 순회하며, 다른 문자들을 띄어쓰기로 변경합니다.

  3. 각 요소에 대해 띄어쓰기로 구분되는 단어들을 다시 분류합니다.

  4. 이제 가장 긴 단어를 찾습니다.


코드

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);
    }
}

카테고리:

업데이트:

댓글남기기