프로그래머스 접두사인지 확인하기

KIMYEONGJUN·2026년 6월 3일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

이 코드는 주어진 문자열 my_string이 다른 문자열 is_prefix의 접두사인지 판단하는 기능을 수행한다.
함수 solution은 두 문자열을 인자로 받아, is_prefix가 my_string의 첫 부분부터 일치하는지 검사한다.
먼저, my_string과 is_prefix의 길이를 비교하여 my_string이 더 짧으면 접두사가 될 수 없으므로 0을 반환한다.
그렇지 않으면 my_string의 처음부터 is_prefix 길이만큼 자른 부분과 is_prefix가 같은 문자열인지 equals 메서드를 통해 비교한다.
만약 두 문자열이 같으면 1을 반환해 접두사임을 알리고, 다르면 0을 반환한다.
main 메서드에서는 여러 가지 테스트 케이스를 출력하여 함수의 동작을 즉시 확인할 수 있도록 하였다.
예를 들어, "banana"와 "ban"은 접두사가 맞으므로 1이 출력되고, "banana"와 "nan"은 접두사가 아니므로 0이 출력된다.

코드로 구현

class Solution {
    public int solution(String my_string, String is_prefix) {
        if (my_string.length() < is_prefix.length()) {
            return 0;
        }

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

        return 0;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 접두사인지 확인하기
public class Main39 {
    public static int solution(String my_string, String is_prefix) {
        if (my_string.length() < is_prefix.length()) {
            return 0;
        }

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

    public static void main(String[] args) {
        // 테스트 케이스 예시
        System.out.println(solution("banana", "ban"));    // 1 출력
        System.out.println(solution("banana", "nan"));    // 0 출력
        System.out.println(solution("banana", "abcd"));   // 0 출력
        System.out.println(solution("banana", "bananan")); // 0 출력
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글