[문제풀이] 01-03. 문장 속 단어

𝒄𝒉𝒂𝒏𝒎𝒊𝒏·2023년 10월 23일
0

인프런, 자바(Java) 알고리즘 문제풀이

String(문자열) 다루기 - 0103. 문장 속 단어


🗒️ 문제


🎈 나의 풀이

	public static String solution(String str) {
        String answer = "";
        String[] words = str.split(" ");

        for(String s : words) {
            if(answer.length() < s.length()) answer = s;
        }

        return answer;
    }

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


🖍️ 강의 풀이

	public static String soulution(String str) {
        String answer = "";
        int pos;

        while((pos = str.indexOf(" ")) != -1) {
            String subStr = str.substring(0, pos);
            if(answer.length() < subStr.length()) {
                answer = subStr;
            }
            str = str.substring(pos + 1);
        }

        return str.length() > answer.length() ? str : answer;
    }

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


💬 짚어가기

나의 풀이의 경우 String 클래스의 split 메소드를 이용하였다.

String[] words = str.split(" ");
// 공백을 기준으로 문자열을 자른다.

강의에서는 `Stirng` 클래스의 `indexOf` 메소드를 이용하였다.
while((pos = str.indexOf(" ")) != -1) { ... }
// index를 반환하며, 찾지 못할 경우 -1을 반환한다.

이 때 while 문의 반복 조건식에 주의하자. 반복문 종료 후 return 전에
마지막 단어를 가진 str과 현재 가장 긴 단어를 가진 answer의 길이를 비교해야한다.

profile
𝑶𝒏𝒆 𝒅𝒂𝒚 𝒐𝒓 𝒅𝒂𝒚 𝒐𝒏𝒆.

0개의 댓글