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값을 출력해줍니다.