해당 문제의 풀이 코드이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
function solution(n, words) {
var answer = [0,0]; // ? 번째 사람이 ? 번째 차례에
let talkWord = [];
talkWord.push(words[0])
for(let x = 1; x<words.length; x++) {
let frontWord = words[x-1]
let currentWord = words[x]
if(frontWord[frontWord.length-1] === currentWord[0]
&& talkWord.indexOf(currentWord) === -1) {
talkWord.push(currentWord)
} else {
let people = x % n +1
let place = parseInt(x/n) + 1
return answer = [people, place]
}
}
return answer;
}
|
cs |
문제 자체를 이해하는데는 어렵지 않은 문제라 return 되어야 하는 형식으로 배열을 만들어주고
매개 변수인 words를 for 문으로 순회하면서 현재 들어가는 알파벳이 전에 들어갔던 문자의 마지막 알파벳과 같으면서 indexOf 메소드를 사용하여 전에 사용한 적이 없는 문자였다면 push 해주고
위의 조건에 부합하지 않는다면 그 사람(people)과 그 장소(place)를 찾는 코드를 구성했다.
위의 조건을 작성하는 것은 그리 어렵지 않았지만 people과 place를 도출해내는 코드를 작성해내는데 꽤나 큰 시간을 투자했던 것 같다.
'프로그래머스' 카테고리의 다른 글
5/19[문제풀이] 프로그래머스 Lv2 다음 큰 숫자 (0) | 2021.05.20 |
---|---|
5/18[문제풀이] 프로그래머스 Lv2 괄호 회전하기 (0) | 2021.05.19 |
5/14[문제풀이] 프로그래머스 Lv2 짝지어 제거하기 (0) | 2021.05.14 |
5/13[문제풀이] 프로그래머스 Lv2 숫자의 표현 (0) | 2021.05.13 |
5/12[문제풀이] 프로그래머스 Lv2 최댓값과 최솟값 (0) | 2021.05.13 |