package beginner;
import java.util.HashMap;
import java.util.Map;
public class WordChain {
public int[] solution(int n, String[] words) {
int[] answer = { 0, 0 };
int i = 1;
Map<String, Integer> map = new HashMap<>();
map.put(words[0], 1);
while (i < words.length) {
if (!check(words[i - 1], words[i])) { // 이전 단어와 현재 단어를 비교
answer[0] = i % n + 1;
answer[1] = i / n + 1;
return answer;
}
if (map.containsKey(words[i])) { // 단어 중복 시
answer[0] = i % n + 1; // 자신의 번호
answer[1] = i / n + 1; // 자신의 몇 번째 차례인지
return answer;
}
map.put(words[i], 1);
// map.put(words[i], map.getOrDefault(words[i], 0) + 1);
i++;
}
return answer;
}
private boolean check(String prev, String curr) {
char p = prev.charAt(prev.length() - 1);
char c = curr.charAt(0);
return p == c;
}
public static void main(String[] args) {
String[] words = new String[] {
// "tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"
"hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang",
"gather", "refer", "reference", "estimate", "executive"
// "hello", "one", "even", "never", "now", "world", "draw"
};
WordChain test = new WordChain();
int[] result = test.solution(5, words);
System.out.printf("[%d,%d]\n", result[0], result[1]);
}
}
728x90
'코딩테스트 > Java' 카테고리의 다른 글
[CodeTree]조건에 부합하는 수 (0) | 2024.08.06 |
---|---|
[Programmers] OX퀴즈 (0) | 2024.04.23 |
[Programmers] 안전지대 (0) | 2024.04.23 |
[Programmers] 겹치는 선분의 길이 (0) | 2024.04.23 |
[Programmers] 평행 (0) | 2024.04.23 |