프로그래머스 - 영어 끝말잇기

JJJ·2023년 5월 28일
0
post-thumbnail


풀이

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반환

profile
Think Talk Act

0개의 댓글