알고리즘/프로그래머스 Level2

[프로그래머스,자바] Level2: 영어 끝말잇기

류창 2022. 2. 13. 19:57
반응형

 

문제분석

 

목표 : 끝말잇기를 진행하여 탈락하는 사람의 차례와 번호를 출력하라

 

 

끝말잇기에 탈락하는 조건은 2가지입니다.

 

1. 이전에 나왔던 마지막글자의 끝말을 잇지 못할경우

2. 이제까지 나왔던 단어들을 중복으로 말할경우

 

이 2가지 경우중 하나일경우 탈락하게됩니다.

 

 

그리고 탈락할경우의  턴은  i/n +1을하면 출력이되며,

탈락한 사람의 번호는 i%n +1을하면 구할수있습니다. 

(i 는 word[]의 인덱스)

 

 

P.s 자료구조를 몰라도 풀수있는 쉬운 Level2문제인것 같습니다.

문제풀이

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
import java.util.*;
class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = new int[2];
        int people =0;
        int turn =0;
        List<String> list =new ArrayList<>();
        list.add(words[0]);
        
        for(int i=1;i<words.length;i++){   
        if(!list.contains(words[i])&&words[i-1].charAt(words[i-1].length()-1)==words[i].charAt(0)){
             list.add(words[i]);
         }   
         else{
             people=(i%n)+1;
             turn=(i/n)+1;
             break;
         }
        }
        answer[0]=people;
        answer[1]=turn;
        return answer;
    }
}
cs
반응형