Computer Science/Algorithm
[Inflearn] 문장 속 단어
코딩맛
2022. 10. 28. 01:04
인프런의 자바(Java)알고리즘 문제풀이 입문:코딩테스트 대비 강좌의 강의를 보고 문제 해설을 작성해보았습니다.
섹션1. String(문자열)의 3. 문장 속 단어 강의편 입니다.
설명
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
입력
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한
단어를 답으로 합니다.
import java.util.Arrays;
import java.util.Scanner;
public class 문장_속_단어 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] words = str.split("\\s");
solution(words);
}
public static void solution(String[] wds) {
int max = 0;
String bigStr = "";
for(String wd : wds) {
if(wd.length()>max) {
max = wd.length();
bigStr = wd;
}
}
System.out.println(bigStr);
}
}
>>해설
Scanner 객체를 통해 문자열을 입력 받고 .split() 함수를 이용하여 공백("//s")을 기준으로 잘라서 문자열 배열에 저장합니다.
solution() 메소드를 호출하여 매개변수로 문자열 배열에 든 값을 보내줍니다.
solution()가 정의되어 있는 메소드에 최대값을 저장할 max 변수와 가장 긴 문자열을 담을 binStr 변수를 초기화합니다.
forEach를 통해 문자열 배열에 든 값을 하나하나 꺼내와서 그 값의 길이가 max 보다 크면 max변수에 해당 문자열 길이를 저장합니다.
이와 동시에 binStr변수에는 해당 문자열을 저장합니다.
반복문이 끝난 후에는 bigStr값을 출력해줍니다.