[알고리즘] 58. Length of Last Word

Fekim·2022년 1월 27일
0

ps

목록 보기
26/48

문제링크

  • 문자열에서, 가장 마지막에 있는 단어의 글자수를 세는 문제이다.

풀이

1. 조건문을 이용한 풀이


public class Solution {
    public int lengthOfLastWord(String s) {

        int cnt = 0;

        // 문자열의 끝에서부터 앞으로 탐색
        for(int i=s.length()-1; i>-1; i--){

            // index의 문자가 ' '일때,
            if(s.charAt(i) == ' '){
                if(cnt == 0)    // index의 문자가 ' '이고 cnt가 0이라면, 배열 뒤쪽에 공백만 채워진 상태이다.
                    continue;   // 따라서 이경우는 앞으로 이동하며 계속 탐색한다.
                else
                    return cnt; // 현재 index가 공백인데, cnt가 0이 아니면 하나의 단어를 탐색을 마친 상태이다.
            }                   // 따라서 이경우는 현재까지 센 글자 수를 반환한다.
            else
                cnt++;          // 현재 index가 공백이 아니라면, cnt를 증가한다.
        }
        return cnt;             // 한번의 공백도 없었으므로, cnt를 반환한다.
    }
}

2. String.split()을 활용한 풀이

class Solution {
    public int lengthOfLastWord(String s) {
 
        //공백문자열이 없다면 전체 문자열의 길이를 반환
        if (!s.contains(" ")) return s.length();
        
        String [] ss = s.split(" ");
 
        //공백문자로만 이루어져있다면 0 반환
        if (ss.length == 0) return 0;
        
        //마지막 문자열의 길이 반환
        return ss[ss.length-1].length();
    }
}
  • split을 사용하면 코드를 4줄로 짧게 작성할 수 있지만, 추가적인 배열을 사용하게 된다
profile
★Bugless 2024★

0개의 댓글