package org.example.알고리즘.영어끝말잇기;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
String[] words = {"tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"};
solution.solution(3, words);
System.out.println(Arrays.toString(solution.solution(2, new String[]{"hello", "one", "even", "never", "now", "world", "draw"})));
}
public int[] solution(int n, String[] words) {
int[] answer = {0, 0};
Set<String> wordSet = new HashSet<>();
int count = 0;
char lastChar = words[0].charAt(0);
loop1:
for (int i = 0; i < words.length; i += n) {
for (int j = 0; j < n; j++) {
if (i + j >= words.length) {
break loop1;
}
String word = words[i + j];
if (wordSet.contains(word) || lastChar != word.charAt(0)) {
answer = new int[]{j + 1, count + 1};
return answer;
}
lastChar = word.charAt(word.length() - 1);
wordSet.add(word);
}
count++;
}
return answer;
}
}
- 그냥 단순 구현문제같다
if (i + j >= words.length) {
break loop1;
}
- 루프를 통해 한번에 이중 for 문 탈출을 유도
- 총 단어수를 넘어가면 OOB 가 발생한다.
if (wordSet.contains(word) || lastChar != word.charAt(0)) {
answer = new int[]{j + 1, count + 1};
return answer;
}
- 마지막 문자와 다르거나, 이전에 word가 존재했다면 바로 실패시켜야한다.
Uploaded by N2T
'자바 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 전력망을 둘로 나누기 (0) | 2023.12.30 |
---|---|
[프로그래머스] 귤고르기 (0) | 2023.12.24 |
[알고리즘] PCCP 기출 문제 2번 Java (0) | 2023.12.19 |
[프로그래머스] Lv2. 스킬트리 (0) | 2023.12.17 |
[알고리즘] 친구 (0) | 2023.10.02 |