akjfal

[Programmers] 영어 끝말잇기 본문

알고리즘/programmers

[Programmers] 영어 끝말잇기

akjfal 2021. 6. 18. 18:24

.

// answer : 가장 먼저 탈락하는 사람의 번호, 자신의 몇 번째 차례에서 탈락했는지
// 만약 탈락자가 없다면 [0, 0]
// 2 <= n <= 10
// n <= word <= 100
// 2 <= word.length <= 50
// all is lowercase

// 1. 체크한 word hash에 넣기
// 2. 이전 index단어의 마지막 단어와 현재 단어 앞단어와 일지하는지 확인
// 3. 중복확인

import java.util.HashMap;

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = {0, 0};
        int idx = 0;
        HashMap<String, Integer> map = new HashMap<>();
        String preWord = words[0];
        String nowWord = "";
        for(int i = 1; i < words.length; i++){
            nowWord = words[i];
            if(preWord.charAt(preWord.length()-1) != nowWord.charAt(0) || map.containsKey(nowWord)){
                idx = i;
                break;
            }
            map.put(preWord, 0);
            preWord = nowWord;
        }
        if(idx != 0){
            answer[0] = idx % n + 1;
            answer[1] = idx / n + 1;
        }

        return answer;
    }
}

딱히 어려운점 없는 문제였다.

'알고리즘 > programmers' 카테고리의 다른 글

[Programmers] 2개 이하로 다른 비트  (0) 2021.06.18
[Programmers] [1차] 프렌즈4블록  (0) 2021.06.18
[Programmers] 배달  (0) 2021.06.18
[Programmers] 후보키  (0) 2021.06.18
[Programmers] 순위 검색  (0) 2021.06.17
Comments