영어 끝말잇기

magicdrill·2025년 2월 7일
0

영어 끝말잇기

처음에는 map으로 저장하려 했는데 set을 사용하면 중복여부를 파악하기가 더 쉽다.

import java.util.*;

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = {0, 0};
        Set<String> usedWords = new HashSet<>();
        int wordLength = words.length;

        // 첫 단어를 초기화
        usedWords.add(words[0]);

        for (int i = 1; i < wordLength; i++) {
            String current = words[i]; 
            String previous = words[i - 1]; 
            System.out.print(previous + " -> " + current);
            
            // 이미 사용된 단어인지 확인
            if (usedWords.contains(current)) {
                System.out.print(" 이미 사용된 단어!");
                answer[0] = (i % n) + 1;
                answer[1] = (i / n) + 1;
                break;
            }

            // 이전 단어의 마지막 글자와 현재 단어의 첫 글자 비교
            if (previous.charAt(previous.length() - 1) != current.charAt(0)) {
                System.out.print(" 끝말잇기 실패!");
                answer[0] = (i % n) + 1;
                answer[1] = (i / n) + 1; 
                break;
            }
            System.out.println();

            usedWords.add(current);
        }

        return answer; 
    }
}

0개의 댓글