🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12981
✏️ 풀이
function solution(n, words) {
const dict = { [words[0]]: true };
for (let i = 1; i < words.length; i++) {
const curWord = words[i];
const prevWord = words[i - 1];
if (dict[curWord] || (curWord[0] !== prevWord[prevWord.length - 1])) {
return [i % n + 1, Math.floor(i / n) + 1];
}
dict[curWord] = true;
}
return [0, 0];
}
words를 순회하면서 처음 나온 단어면 dict에 저장한다. 이미 dict에 등록된 단어거나, 또는 앞 단어 마지막 글자와 현재 단어의 첫 글자가 같지 않으면 words의 index를 n으로 나눈 몫과 나머지를 이용해서 현재 몇 번째 사람이 몇 번째 차례에 탈락하는지를 구하여 반환하였다.
prevWord가 words[i - 1]이므로, i를 1부터 시작해서 순회하고 대신 dict에 words[0]을 미리 넣어주었다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[프로그래머스 Level 2] 테이블 해시 함수 - JavaScript (0) | 2022.12.29 |
---|---|
[백준 1715 - Node.js] 카드 정렬하기 (0) | 2022.11.24 |
[백준 3190 - Node.js] 뱀 (0) | 2022.10.23 |
[백준 14500 - Node.js] 테트로미노 (0) | 2022.10.21 |
[백준 6064 - Node.js] 카잉 달력 (0) | 2022.10.19 |