티스토리 뷰

< 문제 >

1. txt 변수에 e가 몇 개 들어갔는지 구하여라.

2. txt 변수를 5개씩 잘라서 배열에 넣어라.

3. 배열의 요소에 e, z, d, v, n 중 하나 이상 포함되어 있다면, 요소를 삭제하라.

4. 바뀐 배열의 요소 값 중 중복되는 값을 제거하라.


< 문제풀이 >

// 1번 문제풀이

let arr = txt.split("e"); // e가 있는 부분을 기준으로 txt 문자열을 분할

console.log(arr);

console.log(arr.length - 1); // e의 갯수가 n일 때 arr의 요소 갯수는 n+1개


// 2번 문제풀이

let arr2 = [];

let splitFive;

for (let i = 0; i < txt.length; i++) {

    if (i%5 == 0) {
    
        splitFive = txt.substr(i, 5); // 0번째 인덱스부터 5개, 5번째 인덱스부터 5개, ...

        arr2.push(splitFive); // arr2에 삽입
        
    }
    
}

console.log(arr2); // ['1e531', '51661', '52e11', '52z1d', '1v4b1', 'n']


// 3번 문제풀이

let ezdvn = [];

    arr2.forEach(function(element) {
    
        let e = element.indexOf('e'); //indexOf('') 안의 문자가 없을 경우 -1 리턴
        
        let z = element.indexOf('z');
        
        let d = element.indexOf('d');
        
        let v = element.indexOf('v');
        
        let n = element.indexOf('n');
        
        if (e + z + d + v + n == -5) { // 문제 조건을 만족하는 e, z, d, v, n 값은 모두 -1이므로
        
            ezdvn.push(element);
            
        }
        
    });
    
console.log(ezdvn); // ['51661']

        
// 4번 문제풀이

let str = ezdvn[0];

console.log(str); // 51661

let str2;

let temp = [];

let temp2 = [];

for (let i = 0; i < 5; i++) { // str의 글자를 하나씩 떼서 배열에 넣는 for 문

    temp.push(str.substr(i, 1));
    
}

console.log(temp); // ['5', '1', '6', '6', '1']


temp.sort(function(a, b) { return a - b; }); // temp의 각 요소를 오름차순으로 정렬

console.log(temp); // ['1', '1', '5', '6', '6']


str2 = temp[0]+temp[1]+temp[2]+temp[3]+temp[4]; // 배열을 다시 string으로 바꿈

console.log(str2); // 11566


for (let i = 0; i < str2.length; i++) {

    let minus = str2.indexOf(temp[i-1]);
    
    let plus = str2.indexOf(temp[i+1]);
    
    if (str2.indexOf(temp[i]) < plus && str2.indexOf(temp[i]) > minus) { // 양 옆 인덱스 값과 비교해서 값이 다르면 push
    
        temp2.push(temp[i]);
        
    } else if (i == 0 && str2.indexOf(temp[i]) < plus) { // 처음 인덱스값은 오른쪽 인덱스값과 비교
    
        temp2.push(temp[i]);
        
    } else if (i == str2.length - 1 && str2.indexOf(temp[i]) > minus) { // 마지막 인덱스값은 왼쪽 인덱스값과 비교
    
        temp2.push(temp[i]);
        
    }
    
}

console.log(temp2); // ['5']


// 4번 문제풀이 - 다른 방법

let set = new Set(temp); // new Set();은 중복값을 제거하는 기능

console.log(set); // {5}

let uniqueArr = [...set];

consolt.log(uniqueArr); // [5]

'JavaScript' 카테고리의 다른 글

addEventListener 사용법  (0) 2022.01.10
콜 스택(call stack)  (0) 2022.01.08
spread operator와 rest parameter  (0) 2022.01.07
객체 복사 방법 - 얕은 복사 vs. 깊은 복사  (0) 2022.01.07
new 연산자 / 메소드 / Switch 문  (0) 2022.01.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
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
29 30
글 보관함