728x90
문제 설명
문제 풀이 방법
- 이 문제의 설명에서 게임에 참여한 사람들이 지게되는 3가지 조건을 말했다.
1. 앞 사람이 말한 말의 끝에 문자를 시작문자로 하지 않았을 때.
2. 본인 이전의 사람이 말했던 말을 중복해서 말했을 경우.
3. 한가지 문자로 이루어진 말을 했을 경우 - 그리고 1번째로 탈락한 사람이 발생한 경우 바로 그 사람의 번호와 몇번째 횟수에서 탈락했는지 반환한다.
이를 위해 for문 안에 탈락자를 저장하는 배열의 길이를 측정해 예외 처리 했다. - 또한 탈락한 사람이 없는 경우는 [0, 0]을 반환 하도록 했다.
내가 작성한 코드
const solution = (n, words) => {
let answer = [];
for(let i=0; i<words.length; i++){
if(answer.length) break;
if(i > 0){
if( words[i][0] !== words[i-1].slice(-1) || i !== words.indexOf(words[i]) || words[i].length === 1) {
const num1 = (i % n) + 1;
// 반올림을 위해 Math.ceil() 사용
const num2 = (i + 1) % n === 0 ? (i + 1) / n : Math.ceil((i + 1) / n)
answer.push(num1, num2)
}
}
}
if(!answer.length) return [0,0]
return answer;
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
[JS] 1Level / 연습 문제 / 문자열 내 마음대로 정렬하기 (0) | 2023.06.01 |
---|---|
[JS] 2Level / 연습 문제 / 크기가 작은 부분 문자열 (0) | 2023.06.01 |
2Level / 2017 팁스타운 / 짝지어 제거하기 (0) | 2023.05.31 |
2Level / 연습 문제 / 피보나치 수 (0) | 2023.05.29 |
2Level / 연습 문제 / 다음 큰 숫자 (1) | 2023.05.28 |