코딩테스트

[인프런 자바 알고리즘 문제풀이] 3. 문장 속 단어

셩리둥절 2022. 9. 20. 16:46
반응형

한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.

문장속의 각 단어는 공백으로 구분됩니다.


1차 답변 - 성공

 

import java.util.Scanner;

public class Main {
    public String solution(String str) {
        String answer = "";
        String[] wordArray = str.split(" ");
        for(String x : wordArray) {
            if(answer == "") {
                answer = x;
            } else if(answer.length() < x.length()) {
                answer = x;
            }
        }
        return answer;
    }

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

    }
}

강의 정답 1

split() 함수 사용

import java.util.Scanner;

public class Main {
    public String solution(String str) {
        String answer = "";
        int count = Integer.MIN_VALUE;      //가장 작은 값으로 초기화(-2^31)
        String[] wordArray = str.split(" ");
        for(String x : wordArray) {
            int len = x.length();
            if(len > count) {
                count = len;
                answer = x;
            }
        }
        return answer;
    }

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

    }
}

정답 2

indexOf로 ' ' 공백 위치 알아낸 후  subString으로 단어 잘라내기

import java.util.Scanner;

public class Main {
    public String solution(String str) {
        String answer = "";
        int count = Integer.MIN_VALUE;      //가장 작은 값으로 초기화(-2^31)
        int index;
        while((index = str.indexOf(' ')) != -1) {
            String tmp = str.substring(0, index);
            int len = tmp.length();
            if(len > count) {
                count = len;
                answer = tmp;
            }
            str = str.substring(index + 1);
        }
        if(str.length() > count) {
            answer = str;
        }
        return answer;
    }

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

    }
}
반응형