cards1
범위 | ["i", "drink", "water"] | 1 ≤ cards1의 길이, cards2의 길이 ≤ 10
cards2
범위 | ["want", "to"] | 1 ≤ cards1의 길이, cards2의 길이 ≤ 10
goal
범위 | ["i", "want", "to", "drink", "water"] | 2 ≤ goal의 길이 ≤ cards1의 길이 + cards2의 길이
=> cards1과 cards2에 적힌 단어들로 goal를 만들 있다면 "Yes"를, 만들 수 없다면 "No"를 return
cards1과 cards2 값들은 중복이 없으므로, 순차적으로 가능한지만 판단하면 되므로 스택처럼 포인터를 증가시키는 방식으로 구현함
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
boolean isPossi = false;
int cs1 = 0, cs2 = 0, len1 = cards1.length, len2 = cards2.length;
for(String want : goal){
if(cs1 < len1 && cards1[cs1].equals(want)){
cs1+=1;
continue;
}
if(cs2 < len2 && cards2[cs2].equals(want)){
cs2+=1;
continue;
}
isPossi = true;
break;
}
return isPossi?"No":"Yes";
}
}