영어 끝말잇기

seheeee_97·2024년 1월 3일
0

회고팀

목록 보기
40/41





import java.util.HashSet;

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = new int[2];
        HashSet<String> usedWords = new HashSet<>(); // 이미 사용된 단어를 저장하는 HashSet

        for (int i = 0; i < words.length; i++) {
            // 이미 나온 단어면 종료
            if (usedWords.contains(words[i])) {
                answer[0] = (i % n) + 1; // 틀린 단어가 속한 턴
                answer[1] = (i / n) + 1; // 틀린 단어의 차례
                break;
            }

            usedWords.add(words[i]); // 현재 단어를 HashSet에 추가

            // 다음 단어의 시작이 이전 단어의 끝과 일치하지 않으면 종료
            if (i > 0 && words[i].charAt(0) != words[i - 1].charAt(words[i - 1].length() - 1)) {
                answer[0] = (i % n) + 1; // 틀린 단어가 속한 턴
                answer[1] = (i / n) + 1; // 틀린 단어의 차례
                break;
            }
        }

        return answer;
    }
}







key-value쌍을 맞출 필요 없이 단순 데이터 집합으로 사용해서 HashSet을 사용


https://school.programmers.co.kr/learn/courses/30/lessons/12981

0개의 댓글