코딩테스트

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

오류유발자 2024. 4. 22. 11:06

 

 

문제 링크

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

문제 풀이

1. n명의 사람이 번갈아가며 words의 단어를 말하며, words의 순서는 바꿀 수 없다.

2. n번째 사람 다음 순서는 1번째 사람이다.

3. 중복되는 단어는 허용하지 않는다.

4. 첫 알파벳이 이전 사람의 단어의 마지막 알파벳과 동일해야한다.

5. 끝말잇기에 실패한 사람의 번호와 차례를 return한다.

6. 실패한 사람이 없는 경우 [0, 0]을 return한다.

 

 

 

코드

import java.util.Set;
import java.util.HashSet;

class Solution {
    public int[] solution(int n, String[] words) {
        Set<String> set = new HashSet();
        char startChar;
        
        for(int i =1; i<words.length ;i++){
            if(set.contains(words[i]) || startChar !=  words[i].charAt(0)) 
                   return new int[]{i%n+1,i/n+1};
                   
            set.add(words[i]);
            startChar = words[i].charAt(words[i].length()-1);
        }
        return new int[]{0,0};
    }
}

 

 

 

실행 결과