본문 바로가기

Algorithm (Java)/인프런 알고리즘강의

[인프런/알고리즘] 문자열 - 문장 내 가장 긴 단어 출력하기

StringTokenizer사용

 

// 한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어 출력 프로그램
// StringTokenizer사용
class Main{
	public String solution(String str){
		StringTokenizer st = new StringTokenizer(str);
		String answer= "";
		while(st.hasMoreTokens()){
			
			String now = st.nextToken();
			if(st.nextToken().length() > answer.length()) {
				answer = now;
			}
		}

	return answer;
	}

	public static void main(String[] args){
		Main m = new Main();
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		System.out.println(m.solution(str));
	}
}

Split 사용

// split 사용
class Main{
	public String solution(String str){
		String answer = "";
		String[] strArr = str.split(" ");
		for (String idx :strArr){
			if(idx.length() > answer.length()) answer = idx;
		}

	return answer;
	}

	public static void main(String[] args){
		Main m = new Main();
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		System.out.println(m.solution(str));
	}
}

indexOf / substring 사용

package prep.test.coding;

import java.util.Scanner;

public class IndexOf {
	// split 사용
	public String solution(String str) {
		String answer = "";
		int position = 0;
		
		
		while((position = str.indexOf(' ')) != -1 ) {
			String tmp = str.substring(0, position);
			if(tmp.length() > answer.length() ) {
				answer = tmp;
			}
			
			str = str.substring(position+1);
		}
		if(str.length()> answer.length()) answer = str;
		return answer;
	}
	
	public static void main(String[] args){
		IndexOf i = new IndexOf();
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		System.out.println(i.solution(str));
	}


}

 

출처

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84

 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com