접미사인지 확인하기

nacSeo (낙서)·2024년 1월 25일
0

프로그래머스

목록 보기
38/169

문제 설명

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.

제한 사항

1 ≤ my_string의 길이 ≤ 100
1 ≤ is_suffix의 길이 ≤ 100
my_string과 is_suffix는 영소문자로만 이루어져 있습니다.

나의 코드

class Solution {
    public int solution(String my_string, String is_suffix) {
        int answer = 0;
        String[] temp = new String[my_string.length()];
        for(int i=0; i<temp.length; i++) {
            temp[i] = my_string.substring(i);
        }
        for(int j=0; j<temp.length; j++) {
            if(temp[j].equals(is_suffix)) answer = 1;
        }
        return answer;
    }
}
  1. substring 메서드를 사용하여 접미사들 배열 temp에 저장
  2. 배열 temp를 돌며 주어진 매개변수 is_suffix 문자열과 비교, 있으면 1로 반환

다른 사람 코드

class Solution {
    public int solution(String my_string, String is_suffix) {
        if(my_string.endsWith(is_suffix)) {
            return 1;
        } else {
            return 0;
        }
    }
}

endsWith메소드 사용

class Solution {
    public int solution(String my_string, String is_suffix) {
        int answer = 0;
        for(int i=0;i<my_string.length();i++){
            if(is_suffix.equals(my_string.substring(i))){
                answer = 1;
                break;
            }
        }
        return answer;
    }
}

따로 배열에 저장안하고 my_string을 substring으로 자르면서 돌며 바로바로 확인

느낀 점

내 코드처럼 따로 저장을 안하고 자르면서 돌며 바로바로 확인하는 방법이 있었고, 해당 문제에 딱 맞는 endsWith메소드도 존재했다.

  • boolean startsWith(String prefix)
    - 대상 문자열이 특정 문자 또는 문자열로 시작하는지 체크하는 함수
    - 해당 문자열로 시작되는지 여부를 확인하고 boolean에 맞춰 true/false 값을 리턴
  • boolean endsWith(String suffix)
    - 대상 문자열이 특정 문자 또는 문자열로 끝나는지 체크하는 함수
    - 해당 문자열로 끝나는 여부를 확인하고 boolean에 맞춰 true/false 값을 리턴
profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글