[프로그래머스/Java] Lv.2 영어 끝말잇기

이은정·2024년 9월 27일

프로그래머스/Java

목록 보기
45/74

문제

로직

빈 리스트를 생성한다.
단어 배열의 첫 번째 인덱스부터 아래 반복문을 실행한다.
1. 만약 전 단어의 마지막 글자와 현재 단어의 첫 번째 글자가 다르다면 [(해당 인덱스)%3+1, (해당 인덱스)/3 +1]를 반환한다.
2. 만약 리스트에 현재 단어가 존재한다며 [(해당 인덱스)%3+1, (해당 인덱스)/3 +1]를 반환한다.
3. 위 두 가지 모두 해당되지 않는다면 현재 단어를 리스트에 추가한다.

반복문을 탈출하면 주어진 단어들로 탈락자가 생기지 않았다는 것이므로 [0, 0]을 반환한다.

코드

import java.util.*;

class Solution {
    public int[] solution(int n, String[] words) {
        List<String> wordList = new ArrayList<>();
        wordList.add(words[0]);
        
        for (int i = 1; i < words.length; i ++ ) {
            char first = words[i].charAt(0);
            char last = words[i-1].charAt(words[i-1].length()-1);
            
            boolean hasWord = wordList.contains(words[i]);
            
            if (first != last || hasWord) {
                return new int[] {i%n+1, i/n+1};
            }
            
            wordList.add(words[i]);
        }
        
        return new int[]{0, 0};
    }
}

결과

profile
돈 많은 백수가 꿈인 백엔드 개발자 지망생

0개의 댓글