본문 바로가기
Java/Coding-Test

[Java] 1-3 문장 속 단어

by JS1111 2022. 1. 8.

문제

한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.

입력

첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다.

출력

첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한
단어를 답으로 합니다.

예시 입력

it is time to study

예시 출력

study

출처

인프런 - 자바-알고리즘-문제풀이-코테대비

내 풀이

private static String longestWord(String input) {
    String[] words = input.split(" ");
    String result = "";
    int longestLength = 0;
    for (String word : words) {
        if (word.length() > longestLength) {
            longestLength = word.length();
            result = word;
        }
    }
    return result;
}

private static String longestWordByStream(String input) {
    return Arrays.stream(input.split(" "))
            .max((s1, s2) -> s1.length() - s2.length())
            .orElse("");
}

기억할 점

Stream의 max(Comparator)는 Optional를 반환한다

값을 받으려면 Optional의 orElase(default), get() 등을 이용해야한다

'Java > Coding-Test' 카테고리의 다른 글

[Java] 1-9 숫자만 추출  (0) 2022.01.15
[Java] 1-8 유효한 팰린드롬  (0) 2022.01.15
[Java] 1-7 회문 문자열  (0) 2022.01.14
[Java] 1-6 중복문자제거  (0) 2022.01.13
[Java] 1-1 문자찾기  (0) 2022.01.04

댓글