코딩테스트/프로그래머스
[프로그래머스] 영어 끝말잇기 (Lv.2)
34suuuuu
2025. 4. 9. 09:06
✴️ 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12981
✴️ 문제 풀이
탈락자가 생기는 경우는 2가지가 있다.
1. 끝말을 제대로 잇지 않은 경우
2. 했던 말 또하는 경우
1번의 경우는 `charAt`으로 이전 단어의 마지막 글자와 현재 단어의 첫번째 글자를 비교해줬다.
그리고 2번의 경우는 단어들을 리스트에 넣어 `contains`로 확인해줬다.
탈락자의 번호는 `(i % n) + 1`, 탈락자의 차례는 `(i / n) + 1` 로 리턴해준다.
✴️ 전체 코드(Java)
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
Set<String> set = new HashSet<>();
set.add(words[0]);
for(int i=1 ; i < words.length; i++){
if(set.contains(words[i]) || words[i-1].charAt(words[i-1].length()-1) != words[i].charAt(0)){
return new int[]{(i % n) + 1,(i / n) + 1};
}
set.add(words[i]);
}
return new int[]{0,0};
}
}