View

😃 || 정리

1) 끝말잇기에서 패하는 경우 두 가지

  • 단어가 중복되는 경우

    💬 ArrayList를 선언해서 단어들을 넣은 후 , contains메서드를 이용해서 단어가 중복되는지 확인

 

  • 직전 단어의 마지막 문자로 시작하는 단어가 아닐 경우

    💬 substring 메서드를 이용해서 이전 단어의 마지막글자와 다음 단어의 첫번째 글자를 가져와 같은지 확인함

 

2) 반복문을 모두 통과하지 못할 경우 탈락한 사람의 번호와 그 사람의 순서를 반환

    💬 [다음 단어의 index%사람수+1, 다음 단어의 index/사람수+1]
    이 식은 노가다로 직접 단어의 인덱스와 길이 , n값 도출되어야 하는 값을 써보면서 규칙을 찾았다 ^.T

 

3) 반복문을 모두 통과할 경우 끝말잇기 성공
    💬 [0,0]값을 반환함

 

😃 || 풀이 방법

import java.util.*;

class Solution {
    public int[] solution(int n, String[] words) {
        int wordsLen = words.length; 
        ArrayList<String> wordList = new ArrayList<String>();

        for(int i=0; i< wordsLen-1 ; i++){
          if(wordList.contains(words[i+1]) || !words[i].substring(words[i].length()-1).equals(words[i+1].substring(0,1)) ){
             return new int[]{((i+1)%n)+1, (i+n+1)/n};
          }

          wordList.add(words[i]);
        }

        return new int[]{0,0};
    }
}
Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31