Solution 1) 내 풀이
class Solution {
    public int solution(String my_string, String is_suffix) {

        int myIdx = my_string.length() - 1;
        int isIdx = is_suffix.length() - 1;
        int answer = 0;

        for (int i = 0; i < is_suffix.length(); i++) {
            answer = 0;
            // 원문과 비교자의 끝 문자가 같지 않다면 끝내기 || 비교자가 더 길다면 끝내기
            if (is_suffix.charAt(isIdx) != my_string.charAt(myIdx) || myIdx < isIdx) {
                break;
            }else {
                if (is_suffix.charAt(i) == my_string.charAt(myIdx - isIdx + i)) {
                    answer = 1;
                }
            }
        }
        return answer;
    }
}
시행착오) else 의 if (is_suffix.charAt(i) == my_string.charAt(myIdx - isIdx + i)) 조건
class Solution {
    public int solution(String my_string, String is_suffix) {

        int myIdx = my_string.length() - 1;
        int isIdx = is_suffix.length() - 1;
        int answer = 0;

        for (int i = 0; i < is_suffix.length(); i++) {
            answer = 0;
            if (is_suffix.charAt(isIdx) != my_string.charAt(myIdx) || myIdx < isIdx) {
                break;
            }else {
                if (is_suffix.charAt(i) == my_string.charAt(myIdx - isIdx)) {
                    answer = 1;
                }
            }
        }
        return answer;
    }
}
처음에 else의 조건문에 is_suffix의 문자와 비교하려는 my_string의 문자를 myIdx - isIdx로 뒀다.

반복문을 돌며 하나하나 비교해서 확인이 돼야하는데 그렇지 못해 에러가 났음을 확인하고 나중에 (밥먹고 나니 비로소..)보이게 돼 수정 후 성공 할 수 있었다.
Solution 2) 다른 사람의 풀이 _ endsWith 메서드 사용
class Solution {
    public int solution(String my_string, String is_suffix) {
        if(my_string.endsWith(is_suffix)) {
            return 1;
        } else {
            return 0;
        }
    }
}

접미사 메서드가 있었당.. 

class Solution {
    public int solution(String my_string, String is_suffix) {
        return my_string.endsWith(is_suffix) ? 1 : 0;
    }
}

그래서 활용해봤다.. 걍 요렇게 끝낼 수 있다 또 배웠다 ㅜㅜ

+ Recent posts