부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다. 예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.
문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
항상 i < j 관계를 유지하기 위해 int j = i로 초기화했다. 그리고 substring()에서 인덱스 j 값 전까지 추출된다는 점을 고려하여 두 번째 for문에서는 순회 범위를 j<my_string.length()+1로 잡아야 한다.
그렇게 String my_string이 모든 부분 문자열을 담은 List 객체를 루프로 돌며 equals()로 String target과 일치한지 체크하고, 같다면 answer를 1로 변환하고 break;로 반복문을 빠져나온다.
import java.util.ArrayList;
import java.util.List;
class Solution {
public int solution(String my_string, String target) {
int answer = 0;
List<String> list = new ArrayList<>();
for(int i=0;i<my_string.length();i++){
for(int j=i;j<my_string.length()+1;j++){
list.add(my_string.substring(i, j));
}
}
for(int i=0;i<list.size();i++){
if(list.get(i).equals(target)){
answer = 1;
break;
}
}
return answer;
}
}
