Algorithm/Programmers Java
Java 프로그래머스 영어 끝말잇기
제우제우
2024. 3. 1. 17:59
https://school.programmers.co.kr/learn/courses/30/lessons/12981
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 분류 : 코딩테스트 연습 > Summer/Winter Coding(~2018) > 영어 끝말잇기
난이도 : 2
정답 코드
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
int []answer = {0, 0};
// 가장 먼저 탈락하는 사람의 번호와 그 사람이 자신의 몇 번째 차례에 탈락하는
HashSet<String> set = new HashSet<>(); // 단어의 중복을 확인하기 위한
Stack<String> stack = new Stack<>();
for(String word : words){
word = word.toLowerCase();
if(stack.isEmpty()){
stack.push(word);
set.add(word);
continue;
}
if(!stack.peek().endsWith(Character.toString(word.charAt(0))) || set.contains(word)){
int size = stack.size() + 1;
if(size % n != 0){
answer[0] = size % n;
}
else answer[0] = n;
answer[1] = ( size / n ) + (size % n == 0 ? 0 : 1);
break;
}
stack.push(word);
set.add(word);
}
return answer;
}
}