🔗 문제 링크
https://www.hackerrank.com/challenges/two-characters/problem?isFullScreen=true
✏️ 풀이
function alternate(s) {
const isAlternate = (str) => [...str].every((v, i) => i % 2 ? v === str[1] : v === str[0]);
const chars = [...new Set(s)];
let maxLength = 0;
for (let i = 0; i < chars.length - 1; i++) {
for (let j = i + 1; j < chars.length; j++) {
const removed = s.replace(new RegExp(`[^${chars[i]}${chars[j]}]`, 'g'), '');
if (isAlternate(removed)) {
maxLength = Math.max(maxLength, removed.length);
}
}
}
return maxLength;
}
먼저 주어진 문자열에 사용된 모든 문자를 구한다. 그 다음 반복문으로 이 중 두 개를 고르는 모든 경우를 확인한다. 이 때 두 문자를 제외한 나머지 문자들을 제거하고 남은 문자열이 alternate(두 문자열이 번갈아 나타남)하다면 maxLength를 갱신하도록 하였다.
'연습장 > HackerRank 문제풀이' 카테고리의 다른 글
[HackerRank - Easy] Ice Cream Parlor - JavaScript (0) | 2023.01.05 |
---|---|
[HackerRank - Easy] Weighted Uniform Strings - JavaScript (0) | 2023.01.03 |
[HackerRank - Easy] Super Reduced String - JavaScript (0) | 2023.01.03 |
[HackerRank - Easy] Flatland Space Stations - JavaScript (0) | 2023.01.01 |
[HackerRank - Easy] Big Sorting - JavaScript (0) | 2023.01.01 |