이 문제는 n명의 플레이어가 순서대로 단어를 말하는 상황에서, 첫 번째 단어를 시작으로 모든 단어를 순회하며 이전 단어의 마지막 문자와 현재 단어의 첫 문자가 일치하는지, 단어의 길이가 2 이상인지, 그리고 해당 단어가 이미 사용된 단어 목록에 포함되어 있지 않은지를 HashSet을 이용해 확인한 후, 이 중 하나라도 규칙에 어긋나면 그 단어의 인덱스를 기반으로 플레이어 번호와 차례를 계산하여 즉시 반환하고, 모든 단어가 규칙을 준수하면 최종적으로 [0, 0]을 반환하는 방식으로 문제를 해결합니다.
public class WordChainGame {
public int[] solution(int n, String[] words) {
Set<String> wordSet = new HashSet<>();
wordSet.add(words[0]);
char expected = words[0].charAt(words[0].length() - 1);
for (int i = 1; i < words.length; i++) {
String currentWord = words[i];
if (currentWord.charAt(0) != expected || !wordSet.add(words[i])) {
return new int[]{(i % n) + 1, (i / n) + 1};
}
expected = currentWord.charAt(currentWord.length() - 1);
}
return new int[]{0, 0};
}
}