반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- MySQL
- 정규표현식문제
- node.js
- TypeScript
- 오블완
- next.js
- binary search
- 정렬 알고리즘
- 자료구조
- 프로그래머스
- mysql스키마
- 자바스크립트 알고리즘
- 프로그래머스 자바스크립트
- js 알고리즘
- 키패드누르기풀이
- 좌표거리구하기
- TS
- 맨해튼거리
- 깃허브
- 자바스크립트 정렬
- JavaScript
- 프로그래머스 신규아이디추천
- 알고리즘
- 타입스크립트
- Javascript sort
- 티스토리챌린지
- 맨해튼거리예제
- Javascript 정렬
- 프로그래머스 자바스크립트 풀이
- 자바스크립트 배열
Archives
- Today
- Total
FE PARADISE
프로그래머스 영어 끝말잇기 - 자바스크립트 풀이 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12981
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
전체 코드
function solution(n, words) {
let index = -1;
for(let i=1; i<words.length; i++){
let lastWord = words[i-1].split("").at(-1);
let firstWord = words[i][0];
if(words.indexOf(words[i]) !== i || firstWord !== lastWord) {
index = i;
break;
}
}
if(index < 0) return [0,0];
return [index % n + 1, Math.ceil((index+1)/n)];
}
풀이
끝말잇기에서 탈락하는 경우는 두 가지 이다.
1. 이전에 등장했던 단어를 말하는 경우
2. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어가 아닌 단어를 말한 경우
우선 끝말잇기에서 탈락한 사람이 말한 단어의 인덱스를 찾아보자.
let index = -1;
for(let i=1; i<words.length; i++){
let lastWord = words[i-1].split("").at(-1);
let firstWord = words[i][0];
if(words.indexOf(words[i]) !== i || firstWord !== lastWord) {
index = i;
break;
}
}
for 문을 돌면서 words 배열 내의 단어를 순서대로 확인한다. 위에서 말한 탈락되는 조건에 해당하는 경우라면 해당 인덱스를 index 변수에 저장한다.
if(index < 0) return [0,0];
만약 index가 -1이라면 탈락 조건에 해당하는 단어가 없는 것이므로 [0, 0]을 반환한다.
return [index % n + 1, Math.ceil((index+1)/n)];
탈락 조건에 해당하는 단어가 있는 경우 위와 같이 [탈락된 사람의 번호, 몇번째 차례에 탈락했는지] 반환한다.
반응형
'자료구조 & 알고리즘' 카테고리의 다른 글
프로그래머스 - 할인 행사 ( 자바스크립트 풀이 ) (0) | 2025.01.11 |
---|---|
유클리드 호제법 - 최대공약수 구하기 (자바스크립트 코드) (0) | 2025.01.04 |
프로그래머스 구명보트 - 자바스크립트 풀이 ⛵︎ (0) | 2024.12.11 |
프로그래머스 귤 고르기 - 자바스크립트 풀이 🍊 (0) | 2024.12.11 |
프로그래머스 카펫 - 자바스크립트 풀이 (0) | 2024.12.10 |