[C++] 프로그래머스 접두사인지 확인하기

문제설명

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


제한사항

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


입출력 예

my_string is_prefix result
“banana” “ban” 1
“banana” “nan” 0
“banana” “abcd” 0
“banana” “bananan” 0


풀이

is_prefix 문자열이 my_string의 접두사인지 판단하는 구현 문제입니다. is_prefix 길이만큼 my_string의 인덱스 0부터 같은지 판단하는 로직을 구현하여 문제를 풀 수 있었습니다.

#include <string>
#include <vector>

using namespace std;

int solution(string my_string, string is_prefix) {
    int answer = 0;
    bool is_p = true;
    
    if (my_string.length() > is_prefix.length())
    {
        for (int i = 0; i < is_prefix.length(); i++)
        {
            if(my_string[i] != is_prefix[i])
            {
                is_p = false;
                break;
            }
        }
        
        if(is_p)
        {
            answer = 1;
        }
    }
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment