알고리즘/자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

1-3 문장 속 가장 긴 단어

보름달빵 2025. 4. 8. 15:21

 

문제 포인트

  • 문장 속 각 단어는 공백으로 구분, 단어 중에서 가장 긴 단어를 출력
  • 가장 긴 단어가 여러개인 경우, 문장 속에서 가장 앞쪽에 위치한 단어를 출력 

 

풀이 

  1. 입력받은 문자열을 공백 단위로 구분하기
  2. 구분된 단어들의 길이를 비교하여,  최댓값 업데이트 && 해당 문자열을 저장 

 

✅ split

package 섹션1_String;

import java.io.*;

public class 가장긴단어 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int max=Integer.MIN_VALUE; // 가장 작은 문자열 길이 값으로 0으로 초기화 해도 상관없음
        String answer = "";

        // 입력받은 문자열 -> 공백을 기준으로 분리
        String[] s = br.readLine().split(" ");

        for (String x : s) {
            if(x.length()>max){
                max=x.length();
                answer=x;
            }
        }

        bw.write(answer);
        bw.flush();
        br.close();
        bw.close();




    }
}

 

 

 

✅ IndexOf, subString

 

package 섹션1_String;

import java.io.*;

public class 가장긴단어 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int max=Integer.MIN_VALUE; // 가장 작은 문자열 길이 값으로 0으로 초기화 해도 상관없음
        int pos=0; // 공백이 위치한 곳 
        String answer = "";

        // 입력받은 문자열 -> 공백을 기준으로 문자열을 분리
        String str= br.readLine();
        
        while((pos=str.indexOf(" "))!= -1){
            String tmp = str.substring(0, pos);
            int len=tmp.length();
            if(len > max){
                max=len;
                answer=tmp;
            }
            🌀str = str.substring(pos + 1); 
        }

        // 마지막 단어는 공백이 존재하지 않으므로 따로 check 
       🌀if(str.length()>max) answer=str; 

        bw.write(answer);
        bw.flush();
        br.close();
        bw.close();
        
    }
}

'알고리즘 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글

1-7 회문 문자열  (0) 2025.05.01
1-6 중복 문자 제거  (1) 2025.04.09
1-5 특정 문자 뒤집기  (0) 2025.04.09
1-2 대소문자 변환  (1) 2025.04.07
1-1 문자 찾기  (0) 2025.04.07