연속된 문자 제외 중복된 문자 체크

문제


연속된 문자를 제외 후 중복된 문자가 나오면 false 아니면 true를 반환하는 프로그램을 만드시오.

 

입력


문자는 소문자를 기준으로 합니다.

 

예시


const test_case1 = 'tistory' // false 출력
cosnt test_case2 = 'tisory' // true 출력
const test_case3 = 'tisssssory' // true 출력

 

풀이


function checkPattern(str) {
    let result = true;
    str.split('').reduce((acc, cur) => {
        if (acc.slice(-1) !== cur) {
            if (acc.indexOf(cur) !== -1) result = false;
            return acc + cur;
        }
        return acc;
    });
    return result;
}

주어진 문자열을 글자단위로 배열로 만들어서 문자단위로 검사를 합니다. acc 마지막 문자와 현재 문자와 다르면 같이 더해서 acc로 다시 들어오게끔 리턴해줍니다. 그리고 그안에서 현재 문자가 acc문자 안에 있으면 false로 해서 연속된 문자 제외 중복된 문자를 체크할 . 수있습니다.

'코딩문제' 카테고리의 다른 글

2차원 배열의 최대 값 및 위치 찾기  (0) 2024.03.30
행렬 덧셈  (0) 2024.03.30
대체된 문자열 길이 구하기  (0) 2024.03.30
가장 많이 등장하는 알파벳 찾기  (0) 2024.03.30
회문 판별기  (0) 2024.03.29