카테고리 없음

본캠프 2주차 (2)

jaeoun0238 2024. 11. 5. 21:13

JavaScript 강의

 

 

숙제부분 코딩테스트

1.

function solution(s) {
    var answer = true;

    // 1. 대문자로 통일
    s = s.toUpperCase(); // 전부다 대문자로 변경가능

    // 2. for문을 통해서 문자열의 요소 하나하나씩을 비교
    // 2-1. p, y와 비교
    var num = 0;

    for (var i=0; i<s.length; i++) {
        //여기에서 비교
        if(s[i] === "P") {
            num++;
        }
        if(s[i] === "Y") {
            num--;
        }
    }
    // 3. 개수 체크 (p와 y의 개수가 같은지를 체크) 
    // num이 0이면 'P'와 'Y'의 개수가 같으므로 answer를 true로 설정
    // 그렇지 않으면 answer를 false로 설정
    if (num === 0) {
        answer = true;
    } else {
        answer = false;
    }

    return answer; //answer값 반환
}

var str1 = "pPoooyY"
var str2 = "Pyy";

console.log(solution(str1));

생각보다 응용이 어려워서 다시 한번 복습 하고 정리

str1 > solution("pPoooyY");

'P'와 'Y'의 개수가 동일하므로 true 반환.

str2 > solution("Pyy");

'P'는 1개, 'Y'는 2개이므로 false 반환.

 

2.

 

 

function solution(absolutes, signs) {
    // 1. return해야 하는 answer 생성(처음에는 0으로 초기화)
    var answer = 0;

    // 2. 두 배열을  비교해 가면서 값을 더하거나 빼줄 것
    // 2-1. 두 배열은 크기가 같음 
    // (for 루프는 absolutes 배열의 길이만큼 반복한다, absolutes와 signs의 길이는 같다고 가정가능)
    for (var i = 0; i < absolutes.length; i++) {
        // 부호 (+,-)에 따른 처리
        if (signs[i] === true) {
            //값이 true인 경우(양수)
            answer = answer + absolutes[i];
        } else if (signs[i] === false) {
            //값이 false인 경우 (음수)
            answer = answer - absolutes[i];
        }

    }

    // 3. 출력
    return answer; //최종적으로 계산된 answer 값을 반환합니다.
}
var absolutes = [4, 7, 12]; // +4-7+12 = 9
// var absolutes = [1,2,3]; // -1-2+3 = 0
var signs = [true, false, true];
// var signs = [false, false, true]
console.log(solution(absolutes, signs));

 

이 함수는 각 숫자의 절댓값과 부호를 가진 두 배열을 순회하면서,

signs 배열의 값에 따라 absolutes 배열의 요소를 answer에 더하거나 뺀다.

true는 양수로 처리하고 false는 음수로 처리한 후, 그 결과를 반환합니다.

이렇게 하면 두 배열을 기준으로 모든 숫자의 최종 합을 쉽게 계산할 수 있습니다.

 

자세한 설명은 주석처리!