[TIL] JS강의 1주차 숙제

코딩쟝이·2023년 10월 19일
0

내배캠 TIL

목록 보기
13/63

문자열 연습하기

function solution(s){
    let answer = true;
    let arr = s.split("");
    let strP = arr.filter(function(item) {
        return item === "p" || item === "P";                     
    });
    let strY = arr.filter(function(item) {
        return item === "y" || item === "Y";                   
    });
    if (strY.length === strP.length || strY.length === 0 && strP.length === 0) {
        return answer;
    } else {
        return !answer;
    }
}

1주차때 배운내용을 활용해서 문제를 풀었다. filter 기능으로 p와 P, y와 Y를 찾아 변수에 담아주고 두개가 트루면 ture라는 불린값을 리턴해준다.
대소문자를 구분하지 않고 toUpperCase() 메서드를 활용해서 더 간단하게 풀 수도 있다.

반복문,조건문 연습하기

function solution(absolutes, signs) {
    let answer = 0;

    for (let i = 0; i < signs.length; i++) {
    // 1. absolutes의 i번째 값이 +인지 -인지 판별(signs[i])
        if (signs[i] === true) {
        // +란 얘기
            answer += absolutes[i];
        } else {
        // -란 얘기
            answer -= absolutes[i];
        }
    }
    return answer;
}

문제는 두 배열을 비교해서 signs에 들은 값이 false가 들으면 absolutes 배열에 들은 숫자값이 음수이고 true면 양수인데 for문을 돌려서 signs[i]요소가 true라면 조건을 줘서 answer라는 배열에다가 더하기 연산을 해주고 아니면 마이너스 연산을 해줬다.
두 값을 비교할때 배열안에 들은 요소값을 가지고 활용하는법을 알게됐고 더 나아가

signs[i] ? answer += absolutes[i] : answer -= absolutes[i]

signs에 들은 배열은 불린값이라는 걸 이용해 삼항연산자를 써서 표현할 수 있는 것도 문제풀이를 통해 배우게 되었다.
배운걸 최대한 활용하면서 한단계씩 풀어나가니까 응용력도 길러지고 더 기억에 오래남아서 좋았다.

profile
웹 프론트엔드 개발자를 꿈꾸고 있습니다!

0개의 댓글