풀이
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
ArrayList<String> list=new ArrayList<>();//나온 단어 비교용 list
int[] answer =new int[2];
for(int i=0; i<words.length; i++){
int player=(i%n)+1;
int turn=(i/n)+1;
if(list.contains(words[i])){//words[i]가 word[]에 포함되어 있다면
answer[0]=player;
answer[1]=turn;
break;
}else{//탈락자 없을 경우
answer[0]=0;
answer[1]=0;
}
list.add(words[i]);
//[i-1]맨 끝자 != [i]인 경우
if(i>0 && (words[i].charAt(0)!=words[i-1].charAt(words[i-1].length()-1))){
answer[0]=player;
answer[1]=turn;
break;
}
}
return answer;
}
}
풀이방법
1) 한번 사용된 단어를 list에 담는다
2) words[i]가 list에 있는 경우 %연산으로 n보다 크지 않은 반복된 숫자를 반환하게 하여 player를 반환. /연산으로 n으로 나누었을 때 몫을 turn으로 반환
3) 탈락자가 없는 경우 {0,0)반환
4) words[i]의 첫 글자와 words[i-1]의 끝 글자가 다를 때의 player와 turn반환