
https://school.programmers.co.kr/learn/courses/30/lessons/120869
dic과 spell 모두 중복된 원소를 갖지 않는다. 이중 for문을 쓰는 것을 두려워하면 안된다!
처음에 멋도 모르고 hashSet으로 최적화되나 식으로 시작했다가 결국 for문과 똑같이 사용하고 있음을 알고 머쓱하게 삭제했다.
dic[]의 모든 요소들을 포함해야 하므로 all 이라는 변수를 flag로 사용했다.
spell에서 하나라도 dic을 포함하지 않으면 break;로 빠져나와야 한다.
그렇지 않으면 항상 1을 반환하는 문제가 발생하기 때문이다.
import java.util.*;
class Solution {
public int solution(String[] spell, String[] dic) {
for(int i = 0; i < dic.length; i++) {
String item = dic[i];
boolean all = false;
for(String s : spell) {
if(item.contains(s)) {
all = true;
}else {
all = false;
break; // 핵심 포인트
}
}
if(all) return 1;
}
return 2;
}
}
지금 내 코드도 정답이지만 성능 말고 문장 측면에서만 gpt한테 다듬어 달라고 했다.
import java.util.*;
class Solution {
public int solution(String[] spell, String[] dic) {
for (String item : dic) {
boolean all = true;
for (String s : spell) {
if (!item.contains(s)) {
all = false;
break;
}
}
if (all) return 1;
}
return 2;
}
}