문제
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
입력
첫 줄에 길이가 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 |
댓글