있었는데요 없었습니다
조인 조건 작성 방법 : FROM A JOIN B ON A.C = B.C
특정 옵션이 포함된 자동차 리스트 구하기
OPTIONS 컬럼은 '스마트키,네비게이션,열선시트'와 같이 여러 옵션이 콤마(,)로 연결된 문자열(VARCHAR) 형태로 저장되어 있습니다.
-> IN ("네비게이션") 방식은 OPTIONS 값이 정확히 "네비게이션" 하나만 있는 경우에만 매칭되므로, 문자열에 '네비게이션'이라는 키워드가 포함되어 있는지 찾기 위해서는 LIKE '%네비게이션%' 연산자를 사용해야 합니다.
문자열은 "" 대신 ''를 사용함
-> LIKE '%네비게이션%'
2) 점화식 탐색
i 위치(1부터 t.length()까지)에서, 단어 조각 strs를 하나씩 대입
만약 단어 조각의 길이 len에 대해 t의 i-len부터 i까지의 부분 문자열이 해당 단어 조각과 일치하면 dp[i] = Math.min(dp[i], dp[i-len] + 1)로 최솟값을 갱신
3) 빠른 탐색을 위한 팁
strs에 들어있는 조각들을 길이별로 묶어 두거나, 빠른 비교를 위해 HashSet에 넣어두면 매순간 O(1)에 가깝게 조각 포함 여부 확인 가능
import java.util.*;
class Solution {
public int solution(String[] strs, String t) {
int n =t.length();
int [] dp = new int[n+1];
Arrays.fill(dp, 20001);
dp[0] = 0;
Set<String> wordSet = new HashSet<>(Arrays.asList(strs));
for(int i = 1; i <= n; i++) {
for(int len = 1; len <= 5; len++) {
if(i-len < 0 ) break;
String sub = t.substring(i-len, i);
if(wordSet.contains(sub) && dp[i-len] != 20001) {
dp[i] = Math.min(dp[i], dp[i-len] +1);
}
}
}
return dp[n] == 20001 ? -1 : dp[n];
}
}