코딩테스트/프로그래머스

[프로그래머스] Java :: 접두사인지 확인하기 Lv.0

블로그 주인장 2023. 9. 3.

🎁 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/181906

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

🎁 문제 설명

어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다. 문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.

🎁 입출력 예시

my_string is_prefix result
"banana" "ban" 1
"banana" "nan" 0
"banana" "abcd" 0
"banana" "bananan" 0

🎁 코드(1)

class Solution {
    public int solution(String my_string, String is_prefix) {
        int answer = 0;
        
        if(my_string.startsWith(is_prefix)){
            answer = 1;
        } else {
            answer = 0;
        }
        
        return answer;
    }
}

※ startsWith()  

  • 대상 문자열이 특정 문자 또는 문자열로 시작하는지 체크하는 함수 
  • boolean에 맞춰 true/false 값을 리턴 공백도 취급한다

🎁 코드(2)

class Solution {
    public int solution(String my_string, String is_prefix) {
        int answer = 0;

        if(my_string.length() < is_prefix.length()) {
            return 0;
        } else if(my_string.substring(0, is_prefix.length()).equals(is_prefix)){
            return 1;
        } else {
            return 0;
        }    
    }
}

🎁 코드(3)

class Solution {
    public int solution(String my_string, String is_prefix) {
        int answer = 0;
        int k = 1;
        
        String[] arr = new String[my_string.length()];
        
        // 각 인덱스에 문자를 하나씩 늘려가면서 담는다
        for (int i = 0; i < my_string.length(); i++) {
            arr[i] = my_string.substring(0, k);
            k++;
        }
        
        for (int i = 0; i < arr.length; i++) {
            if (arr[i].equals(is_prefix)) {
                answer = 1;
            }
        }
        
        return answer;
    }
}
반응형

댓글