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};
}
}
'Algorithm' 카테고리의 다른 글
프로그래머스 :: 오픈채팅방 (Java) 알고리즘 풀이 (0) | 2022.03.12 |
---|---|
프로그래머스 :: 예상 대진표 (Java) 알고리즘 풀이 (0) | 2021.06.02 |
LeetCode :: Valid Anagram (Java) (0) | 2021.04.30 |
프로그래머스 :: 같은 숫자는 싫어 (Java) 알고리즘 풀이 (0) | 2021.04.26 |
프로그래머스 :: 이상한 문자 만들기 (Java) 알고리즘 /split (String regex, int limit) 정리 (0) | 2021.04.24 |
reply