문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 풀이
function solution(n, words) {
let stack = [];
for(let i = 0; i < words.length; i++){
let numOfPlay = Math.ceil((i + 1) / n);
let numOfPerson = ((i + 1) % n === 0 ? n : (i + 1) % n);
if(stack.includes(words[i])){
return [numOfPerson, numOfPlay];
}
if(stack.length && (stack[stack.length - 1].slice(-1) !== words[i].slice(0, 1))){
return [numOfPerson, numOfPlay];
}
stack.push(words[i]);
}
return [0, 0];
}
stack을 사용하여 지금 들어온 단어가 이미 언급된 것인지, 이전 단어의 마지막 글자와 같은지를 확인하는 방식으로 구현했다.