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

Updated:

문제 URL

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

끝말잇기 문제다. 중복 구하기 위해서 HashSet을 사용하였다. 중복을 O(1)의 복잡도로 구할수있었다.

나의 풀이

import java.util.HashSet;

class Solution {
    public static int[] solution(int n, String[] words) {
        int[] answer = new int[2];
        //중복검사를 위한 SET
        HashSet<String> set = new HashSet<>();

        set.add(words[0]);
        for (int i = 1; i < words.length; i++) {
            char preChar = words[i - 1].charAt(words[i - 1].length() - 1);
            char currentChar = words[i].charAt(0);

            //끝말잇기&중복검사
            if (preChar != currentChar || set.contains(words[i])) {
                answer[0] = i % n + 1;
                answer[1] = i / n + 1;
                break;
            }

            set.add(words[i]);
        }

        return answer;
    }
}

Leave a comment