티스토리 뷰

728x90
 

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

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

조건 

1. 같은 단어가 있으면 안됨 HashMap 키값 검사

2. str1과 마지막 문자 == str1 첫번째 문자 같아야함 

3. 사람인덱스와 차례리턴  

package programmers.level2;

import org.junit.Test;

import java.util.Arrays;
import java.util.HashMap;

public class P12981 {
    @Test
    public void 정답() {
        String[] words = {"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"};
        System.out.println(Arrays.toString(solution(3, words)));
        System.out.println(Arrays.toString(solution(5, words2)));
        System.out.println(Arrays.toString(solution(2, words3)));
    }

    public int[] solution(int n, String[] words) {
        int[] answer = new int[2];
        HashMap<String, Integer> wordMap = new HashMap<>();
        int peopleNum = 1;
        String str = words[0];
        wordMap.put(str, 1);
        for (int i = 1; i < words.length; i++) {
            if (str.charAt(str.length() - 1) != words[i].charAt(0) || wordMap.containsKey(words[i])) {
                answer[0] = peopleNum % n + 1;
                answer[1] = peopleNum / n + 1;
                return answer;
            } else {
                peopleNum++;
                str = words[i];
                wordMap.put(str, 1);
            }
        }
        return answer;
    }
}
댓글
최근에 달린 댓글
최근에 올라온 글
Total
Today
Yesterday
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31