반응형
문제
내 풀이
- i = 1 부터 시작해야 oldWord가 존재함
- oldWord = 현재 보는 단어의 이전 단어
- wod = 현재 단어
- 하나라도 조건을 만족하지 않으면 [번호, 차례]를 반환한다.
- 조건1: 한 글자인 경우 (word.length === 1)
- 조건2: 현재 단어의 첫 글자와 이전 단어의 마지막 글자와 다른 경우 (word[0] !== oldWord[oldWord.length - 1])
- 조건3: 현재 말한 단어가 이전 단어에 포함된 경우 (words.slice(0, i).includes(word))
- 반환하는 값
- 번호: (i % n) + 1
- 차례: Math.ceil((i+1) / n)
- 위의 조건이 모두 해당하지 않으면 탈락하지 않았으므로 [0, 0]을 반환한다.
function solution(n, words) {
for(let i = 1; i < words.length; i++) {
const oldWord = words[i - 1]
const word = words[i];
if(word.length === 1 || word[0] !== oldWord[oldWord.length - 1] || words.slice(0, i).includes(word)) return [(i % n) + 1, Math.ceil((i+1) / n)];
}
return [0, 0];
}
반응형
'CS > 알고리즘' 카테고리의 다른 글
[230327] 구명보트: Greedy 알고리즘 (0) | 2023.03.27 |
---|---|
[230326] 짝지어 제거하기: stack (0) | 2023.03.26 |
[230326] 다음 큰 숫자 (0) | 2023.03.26 |
[230326] 숫자의 표현 (0) | 2023.03.26 |
[230325] 3진법 뒤집기: parseInt, toString (0) | 2023.03.26 |