영어 끝말잇기

2023.11.16 (THU)


문제 : 프로그래머스 LV.3 - 영어 끝말잇기


조건 및 설명

  • 똑같은 걸 말하거나, 끝말잇기가 되지 않으면 탈락

접근법

  1. 출력은 현재 인덱스에서 나머지 연산 등으로 구한다.
  2. 단어수가 크지 않다.
  3. 매번 인덱스마다 체크해보자.

결과 코드

import java.util.*;

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = {0, 0};
        ArrayList<String> usedWords = new ArrayList<>(); // 사용한 단어
        usedWords.add(words[0]); // 첫 단어 추가
        
        for (int i = 1; i < words.length; i++) {
            // 1. 끝 알파벳과 첫 알파벳이 같지 않을 경우
            // 2. 똑같은 단어를 말했을 경우            
            if (words[i].charAt(0) != words[i-1].charAt(words[i-1].length()-1) ||
                usedWords.contains(words[i])) {
                answer[0] = i % n + 1;
                answer[1] = i / n + 1;
                
                break;
            }
            
            usedWords.add(words[i]);
        }
        
        return answer;
    }
}