
빈 리스트를 생성한다.
단어 배열의 첫 번째 인덱스부터 아래 반복문을 실행한다.
1. 만약 전 단어의 마지막 글자와 현재 단어의 첫 번째 글자가 다르다면 [(해당 인덱스)%3+1, (해당 인덱스)/3 +1]를 반환한다.
2. 만약 리스트에 현재 단어가 존재한다며 [(해당 인덱스)%3+1, (해당 인덱스)/3 +1]를 반환한다.
3. 위 두 가지 모두 해당되지 않는다면 현재 단어를 리스트에 추가한다.
반복문을 탈출하면 주어진 단어들로 탈락자가 생기지 않았다는 것이므로 [0, 0]을 반환한다.
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
List<String> wordList = new ArrayList<>();
wordList.add(words[0]);
for (int i = 1; i < words.length; i ++ ) {
char first = words[i].charAt(0);
char last = words[i-1].charAt(words[i-1].length()-1);
boolean hasWord = wordList.contains(words[i]);
if (first != last || hasWord) {
return new int[] {i%n+1, i/n+1};
}
wordList.add(words[i]);
}
return new int[]{0, 0};
}
}
