PROGRAMMING/Algorithm

[Java 알고리즘] 문장속 단어

불꽃야생마 2021. 8. 9. 19:01

Q. 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력

1. 첫번째 방법(spilt 이용)

public String solution(String str){
		String answer = "";
		int m = Integer.MIN_VALUE;
		String[] s = str.split(" ");
		
		for(String x : s) {
			//System.out.println(x);
			int len = x.length();
			if(len > m)
//만약 len이 integer의 최소값(=x)보다 크면 len에 최소값 대입 
				m = len;
				answer=x;			
		}

		return answer;
	}
	
	public static void main(String[] args) {
		CodingTest_String_03 T = new CodingTest_String_03();
		
		Scanner sc = new Scanner(System.in);
		String srt = sc.nextLine();
		
		System.out.print(T.solution(srt));

	}

2. 두번 째 방법(IndexOf() 활용)

package codingTest;
import java.util.*;

public class CodingTest_String_03 {

	public String solution(String str){
		String answer = "";
		int m = Integer.MIN_VALUE, pos;
		while ((pos=str.indexOf(' '))!= -1) {
			String temp = str.substring(0, pos);
			int len = temp.length();
			if(len>m) {
				m = len;
				answer = temp;
			}
			//substring 하나면 포지션 위치부터 뒤로 쭉
			str = str.substring(pos+1);
		}
		//띄어쓰기가 없는 마지막 단어일 경우 처리
		if(str.length() > m) answer = str;

		return answer;
	}
	
	public static void main(String[] args) {
		CodingTest_String_03 T = new CodingTest_String_03();
		
		Scanner sc = new Scanner(System.in);
		String srt = sc.nextLine();
		
		System.out.print(T.solution(srt));

	}

}