728x90
SMALL
문제 이해
- n명이 영어 끝말잇기중에 있다. 배열에서 영어 단어를 하나씩 말합니다.
- 영어 단어의 끝으로 시작되는 단어를 사용하지 않거나, 이전에 사용한 단어를 사용하면 탈락
- 탈락되는 사람이 없을시 [0,0] 탈락되는 사람이 있다면 해당 단어는 n명의 사람중 몇번째 단어를 말하던 중 탈락인지 구하시오
- 리스트에 사용한 영어 단어를 하나씩 넣는다. 만약 리스트에 포함된 영어단어를 말하면 탈락
- 영어 단어를 말할때 마다 앞의 단어의 마지막 문자로 시작하지 않을 경우 탈락
- n 의 몇번째 단어인지 구하기 : 사람 인원은 1명 이상임으로 +1 , n으로 나눴을때 나머지가 0이되는 몫이 n번째 사람의 단어 순서이다. 0이 되지 않으면 순서는 n의 몫과 동일한 위치에 있기에 +1을 한다.
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
int[] answer = new int[2];
List<String> list = new ArrayList();
int cnt = 2;
list.add(words[0]);
for(int i = 1; i<words.length; i++){
if(list.contains(words[i])
|| !words[i-1].substring(words[i-1].length() - 1).equals(words[i].substring(0,1))){
answer[0] = cnt;
answer[1] = (i+1)%n == 0 ? (i+1)/n : (i+1)/n + 1;
break;
}else{
list.add(words[i]);
}
if(cnt == n){
cnt = 1;
}else{
cnt++;
}
}
return answer;
}
}
728x90
LIST
'자바 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 괄호 회전하기 - Java(자바) (0) | 2024.03.26 |
---|---|
[프로그래머스] 구명보트 - Java(자바) (0) | 2024.03.25 |
[프로그래머스] 점프와 순간 이동 - Java(자바) (0) | 2024.03.25 |
[프로그래머스] 카펫 - Java(자바) (0) | 2024.03.25 |
[프로그래머스] 짝지어 제거하기 - Java(자바) (0) | 2024.03.25 |