본문 바로가기
IT 공부/알고리즘

[JAVA] 문장 속 가장 긴 단어 찾기(indexOf, substring)

by 해모해모 2023. 12. 19.
728x90
반응형

[문제]
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성
(문장속의 각 단어는 공백으로 구분)

[입력]
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어지며, 문장은 영어 알파벳으로만 구성

[출력]
첫 줄에 가장 긴 단어를 출력. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로

[입력 예시]
my name is haemo

[출력 예시]
haemo
첫번째 풀이
import java.util.*;
  
public class Main {
    public String solution(String str){
        String answer = "";
        int min = Integer.MIN_VALUE;
        String[] s = str.split(" ");
        for(String x : s){
          int len = x.length();
          if(len>min){
            min = len;
            answer = x;
          }
        }
        return answer;
    }

  public static void main(String[] args){
    Main T = new Main();
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    System.out.print(T.solution(str));
    return ;
  }
}
두번째 풀이
import java.util.*;
  
public class Main {
    public String solution(String str){
        String answer = "";
        int min = Integer.MIN_VALUE, pos;
        while((pos=str.indexOf(' '))!=-1){
          String temp = str.substring(0, pos);
          int len = temp.length();
          if(len>min){
            min = len;
            answer = temp;
          }
          str = str.substring(pos+1);
        }
        if(str.length()>min){
          answer = str;
        }
        return answer;
    }

  public static void main(String[] args){
    Main T = new Main();
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    System.out.print(T.solution(str));
    return ;
  }
}
728x90
반응형

댓글