[Programmers]英語のドラゴンボール-summer/Winter Coding(~218)


import java.util.LinkedHashSet;

// 영어 끝말잇기 - Summer/Winter Coding(~2018)
public class EngWordChain {

	public int[] solution(int n, String[] words) {
		int[] answer = new int[2];

		LinkedHashSet<String> set = new LinkedHashSet<>();
		set.add(words[0]);
		for (int i = 1; i < words.length; i++) {

			int before = set.size();
			if (words[i - 1].charAt(words[i - 1].length() - 1) == words[i].charAt(0)) {
				set.add(words[i]);
			}
			if (set.size() == before) { // 단어 중복되거나 끝말을 잇지 못하였을 때
				answer[0] = i % n + 1; // 나머지연산 활용
				answer[1] = i / n + 1; // 나누기연산 활용
				break;
			}
		}

		return answer;
	}

	public static void main(String[] args) {

		EngWordChain s = new EngWordChain();

		String[] words1 = { "tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank" };
		String[] words2 = { "hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure",
				"establish", "hang", "gather", "refer", "reference", "estimate", "executive" };
		String[] words3 = { "hello", "one", "even", "never", "now", "world", "draw" };

		s.solution(3, words1); // 3,3
		s.solution(5, words2); // 0,0
		s.solution(2, words3); // 1,3

	}

}