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는 음수로 처리한 후, 그 결과를 반환합니다.
이렇게 하면 두 배열을 기준으로 모든 숫자의 최종 합을 쉽게 계산할 수 있습니다.
자세한 설명은 주석처리!