문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12981?language=java
풀이
흔히들 알고 있는 끝말잇기와 동일하게 끝말을 잇지 못하거나 이전에 나왔던 단어를 사용하면 틀리는 문제!
이전에 나왔던 단어인지 중복 체크를 할 때 Set이나 ArrayList를 사용할 수 있다.
정답(answer)이 나왔을 때 바로 탐색을 중단하여 제출해야 한다 (이걸 안해서 두 번 틀림 ㅠ,,)
정답 코드
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
List<String> wordList = new ArrayList<>();
wordList.add(words[0]);
for(int i = 1; i < words.length; i++) {
String word = words[i];
String preWord = words[i-1];
if(wordList.contains(word) || preWord.charAt(preWord.length()-1) != word.charAt(0)) {
return new int[] {i % n + 1, i / n + 1};
}
wordList.add(word);
}
return new int[] {0, 0};
}
}
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] Lv2. 괄호 회전하기 (4) | 2024.07.19 |
---|---|
[프로그래머스] Lv2. 연속 부분 수열 합의 개수 (0) | 2024.07.17 |
[프로그래머스] LV2. 점프와 순간 이동 (0) | 2024.07.10 |
[프로그래머스] LV2. 멀리 뛰기 (0) | 2024.07.09 |
[프로그래머스] LV2. 카펫 (0) | 2024.07.06 |