728x90
문제설명
입력 & 출력
나의 풀이
단어가 들어오면 단어의 n번째 요소와 그 뒤에 요소를 비교해서 다른 요소가 있다면 해당 단어는 "그룹 단어가 아니다." 라고 접근을 했습니다.
먼저 그룹 단어의 개수와 그룹 단어들을 N과 input으로 받아주었습니다. 그룹단어가 아니라면 카운트를 감소시키기 위해 const가 아닌 let으로 받아줍니다.
그리고 for of문을 사용하여 입력받은 단어들을 하나씩 접근하고, 기본 for문을 사용하여 해당 단어를 순회합니다.
그룹단어를 체크할 때 두가지를 고려해야 합니다.
- 단어가 hi, qw, ab, pa처럼 n번째 요소와 바로 다음 요소(n+1)가
같지 않다면해당 단어는 그룹단어가 아니다! - 두번째로 단어가 java, abab, abca처럼 n번째 요소와 바로 다음 요소(n+1)가 아닌 그 뒤 요소(n+n)에 n번째 요소가 있으면 해당 단어는 그룹단어가 아니다!
위 고려사항을 코드로 풀어보면 6번째줄처럼 slice() 메서드를 이용하여 다음 요소(n+1)를 잘라내고, 더불어 includes() 메서드를 사용하여 잘라낸 문자열에 n번째 요소가 있는지 체크를 해줍니다.
마지막으로 6번째 줄에서 조건문을 만족한다면 그룹 단어의 개수(N)을 감소시켜주고, break문을 사용하여 해당 if문을 빠져나와 다음 단어로 넘어갑니다.
N : 1
input : yzyzy
- y ➡ zyzy = -1
- z ➡ yzy = -1
- y ➡ zy = -1
break문을 사용하지 않으면 위 처럼 입력이될 때 해당 단어는 그룹 단어가 아니여서 -1을 해준 0이 답이어야 하는데 break로 멈추지 않으면 계속해서 단어를 순회하기 때문에 위 처럼 실행되기 때문에 -2가 나오게 됩니다.
최종적으로 그룹 단어의 개수인 N을 반환하여 마무리했습니다.
참고 ❗
'Coding Test > 백준' 카테고리의 다른 글
[백준] 행렬 덧셈 (node.js, 2738번) (0) | 2024.04.09 |
---|---|
[백준] 너의 평점은 (node.js, 25206번) (0) | 2024.04.08 |
[백준] 크로아티아 알파벳 (node.js, 2941번) (0) | 2024.04.06 |
[백준] 단어 공부 (node.js, 1157번) (1) | 2024.04.05 |
[백준] 별 찍기 - 7 (node.js, 2444번) (0) | 2024.04.04 |