접미사인지 확인하기

Subin·2024년 7월 31일

Algorithm

목록 보기
13/69

[내 풀이]

#include <string>
#include <vector>

using namespace std;

int solution(string my_string, string is_suffix) {
    int answer = 0;
    // my_string의 뒤에서부터 하나씩 검사, 그 중 is_suffix랑 일치하는 게 있으면 result = 1반환
    for(int i=0; i<my_string.length(); i++)
    {
        if(is_suffix == my_string.substr(i, my_string.length()-i))
            answer = 1;
    }

    return answer;
}

[다른 사람 풀이]

#include <string>
#include <vector>

using namespace std;

int solution(string my_string, string is_suffix) {    
    if(my_string.size() < is_suffix.size())
    {
        return 0;
    }
    return my_string.substr(my_string.size() - is_suffix.size()) == is_suffix;
}

굳이 길이를 계산할 필요없이, 어차피 해당 인덱스부터 끝까지 반환을 할거고
my_string.size()에서 is_suffix.size()를 뺀 값을 인덱스로 가지면 결국
is_suffix의 길이와 동일한 길이의 값이 나와서
굳이 반복문 쓸 필요없이 값만 비교하면 된다.

profile
성장하며 꿈꾸는 삶을 살아가고 있는 대학생입니다😊

0개의 댓글