[프로그래머스] Level2 영어 끝말잇기 (Java)

MINSANG YU·2022년 9월 8일
0

프로그래머스

목록 보기
7/15
post-thumbnail

문제 링크

핵심

words 배열을 탐색하면서 탐색한 문자열을 Set에 계속 저장한 뒤, 탐색할 때 마다 Set에 저장이 되어있는지를 검사해 중복된 단어를 걸러주었다.

import java.util.*;

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = {};
        int cnt = 1;
        Set<String> set = new HashSet<>();
        set.add(words[0]);
        
        for(int i=1; i<words.length; i++) {
            if(set.contains(words[i])) break;
            if(words[i].charAt(0)==words[i-1].charAt(words[i-1].length()-1)) {
                set.add(words[i]);
                cnt++;
            }
            else break;
        }
        
        if(cnt==words.length) answer = new int[] {0,0};
        else answer = new int[] {cnt%n+1, cnt/n+1};
        
        return answer;
    }
}
profile
쉿! 공부중

1개의 댓글

comment-user-thumbnail
2023년 5월 15일

진짜 천재인가 answer[cnt%n+1] 하는 발상도 신기하고
n번쨰 단어를 구할떄도 cnt/n+1 를 하다니.. 벽느껴진다..

답글 달기