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

YH·2023년 10월 26일
0

문제

접미사인지 확인하기 : 문제 링크


문제 분석

  • 어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미한다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"이다. 문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return
  • 접미사인지 아닌지 확인할 정수형 변수 check를 선언. is_suffix, 즉 접미사가 my_string의 길이보다 클 수 없으므로, 첫번째 if문을 통해 그것을 거름.
  • 이중 for loop를 통해 my_string과 is_suffix의 원소를 하나씩 확인하고, 1) 해당하는 인덱스의 문자가 같고 2)남은 my_string와 is_suffix의 길이가 같다면 check를 1로 초기화 하고 계속함. 그렇지 않다면 check를 0으로 설정하고 첫번째 loop를 탈출. 첫번째 loop가 끝나고 check가 1이라면 접미사임을 의미하므로 1을 return. for loop가 다 끝나고도 check가 0이라면 0을 return

풀이

#include <string>

using namespace std;

int solution(string my_string, string is_suffix) {
    int check;
    
    if(my_string.size() >= is_suffix.size()) {
        for(int i = 0; i < my_string.size(); ++i) {
            for(int j = 0; j < is_suffix.size(); ++j) {
                if(my_string[i + j] == is_suffix[j] && my_string.size() - i == is_suffix.size()) {
                    check = 1;
                    continue;
                }
                else {
                    check = 0;
                    break;
                }
            }
            if(check == 1) return 1;
        }
    }
    return 0;
}
profile
Keep Recycling Your Dreams

0개의 댓글