알고리즘/프로그래머스
[프로그래머스][자바스크립트][Level2] 영어 끝말잇기
Benjamin_Choi
2022. 3. 5. 12:11
풀이
/**
* 영어끝말잇기.js
* https://programmers.co.kr/learn/courses/30/lessons/12981?language=javascript
*/
function solution(n , words) {
const length = words.length + words.length % n;
let order = null;
for (let i = 1; i < length; i++) {
const idx = i % words.length;
const beforeWord = words[idx - 1];
const currWord = words[idx];
if (beforeWord[beforeWord.length - 1] !== currWord[0] || words.indexOf(words[idx]) !== i) {
order = idx + 1;
break;
}
}
return order ? [order % n ? order % n : n, Math.ceil(order / n)] : [0, 0];
}
다음 내용을 고려해서 풀이했다.
1. 끝말잇기 규칙 확인. 앞 단어의 끝 글자와 뒷 단어의 첫 글자 비교
2. 이미 존재하는 단어가 또 나왔는지 indexOf를 활용해서 확인
3. 순서를 확인한 다음 해당 순서를 나머지 값을 구해서 몇 번째 사람인지 구하고, 나눈 이후 반올림을 통해 몇 번째 차례인지 확인한다.