Free Lines Arrow
본문 바로가기
Algorithm/프로그래머스 알고리즘

[프로그래머스] 영어끝말잇기

by skahn1215 2021. 10. 15.
728x90
반응형

문제

 

 

분석

2단계라 그렇게 어렵진 않았다.

입출력 예제를 보면 인덱스를 주어 쉽게 풀수 있다.

현재 몇회차 끝말잇기가 진행되었는지

탈락자는 몇번 인지.

 

 

구현

    import java.util.*;

    class Solution {
        public int[] solution(int n, String[] words) {
            int[] answer = new int[2];
            ArrayList<String> checkWordList = new ArrayList<>();


            int rotateCount = 1;
            int wordCount = 1;
            int currentCount = 1 ;
            boolean isWrongWord = false;
            for(int i = 0; i < words.length-1; i++) {
                wordCount++;
                currentCount++;
                String currentWord = words[i];
                String nextWord = words[i+1];

                char curLastWord = currentWord.charAt(currentWord.length()-1);
                char nextLastWord = nextWord.charAt(0);

                checkWordList.add(currentWord);

                if (curLastWord != nextLastWord || checkWordList.contains(nextWord) ) {
                    isWrongWord = true;
                    break;
                }

                if ((wordCount % n) == 0) {
                    currentCount = 0;
                    rotateCount ++;
                }
            }

            if (isWrongWord) {
                answer[0] = currentCount;    
                answer[1] = rotateCount;
            } else {
                answer[0] = 0;    
                answer[1] = 0;
            }

            return answer;
        }
    }

 

 

결과

 

 

 

 

 

문제:

https://programmers.co.kr/learn/courses/30/lessons/12981?language=java 

 

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

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

 

728x90
반응형

댓글