본문으로 바로가기

Summer/Winter Coding(~2018)


스티커 모으기(2)


 

https://programmers.co.kr/learn/courses/30/lessons/12981

 

코딩테스트 연습 - 영어 끝말잇기

3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]

programmers.co.kr

class 영어끝말잇기 {
	public int[] solution(int n, String[] words) {
		int[] count = new int[n];
		int idx = 0;
		int prev = 0;
		char prevChar = words[0].charAt(0);
		HashSet<String> set = new HashSet<>();
		for (String word : words) {
			count[idx++ % n]++;
			set.add(word);
			if (set.size() == prev || word.charAt(0) != prevChar) {
				return new int[] { (idx - 1) % n + 1, count[(idx - 1) % n] };
			}
			prev = set.size();
			prevChar = word.charAt(word.length() - 1);
		}

		return new int[] { 0, 0 };
	}
}