Notice
Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- JS append
- JS setTimeout
- JS clearInterval
- CSS기초
- js 변수
- JS 삼항연산
- HTML기초
- JS 연산
- JS 함수
- JS 스코프
- JS 타이머기능
- JS 형변환
- JS form
- JS classList
- CSS속성정리
- JS 화살표함수
- JS 기초
- JS form action
- JS preventDefault
- JS appendChild
- JS value속성
- git 협업셋팅
- JS typeof연산자
- JS localStorage
- JS 숫자
- JS prompt
- JS null undefined
- JS setInterval
- JS redirection
- JS 데이터타입
Archives
공부기록용
JavaScript 문법 종합 1주차(숙제) 본문
Q. 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
// 정답
function soultion(s) {
var answer = true;
// 1. 대문자로 통일(대, 소문자에 관계없이 p, y의 갯수만 보기 때문에 통일시켜줌)
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의 개수가 같은지를 체크)
if (num === 0) {
answer = true;
} else {
answer = false;
}
return answer;
}
var str1 = "pPoooyY";
var str2 = "Pyy";
console.log(soultion(str1)); // true
// 이해한경로
function soultion(s) {
var answer = true;
// 1. 대문자로 통일(대, 소문자에 관계없이 p, y의 갯수만 보기 때문에 통일시켜줌)
s = s.toUpperCase(); // 문자열 s의 소문자들이 대문자로 변경
// 2. for문을 통한 문자열의 요소 하나하나씩을 비교
// 2-1. p, y 비교해가면서 개수를 확인해야함
var num = 0;
// i는 0부터, 문자열s의 길이까지만_6or2일것,
for (var i = 0; i < s.length; i++) {
// 여기에서 비교
// 문자열s안의 i번째 요소가 P라면
if (s[i] === 'P') {
num++;
}
// 문자열s안의 i번째 요소가 Y라면
if (s[i] === 'Y') {
num--;
}
}
// 3. 개수 체크(p와 y의 개수가 같은지를 체크)
// num이 0이면 P, Y갯수가 같은것이므로 answer은 true
if (num === 0) {
answer = true;
} else { // num이 0아니면 P, Y갯수가 다른것이므로 answer은 false
answer = false;
}
// 그리곤 그 answer을 반환하라
return answer;
}
var str1 = "pPoooyY";
// pPoooyY -> PPOOYY
// 0번째i=P=num++=1, 1번째i=P=num++=2,
// 2번째i=O=조건없음=2, 3번째i=O=조건없음=2, 4번째i=O=조건없음=2,
// 5번째i=Y=num--=1, 6번째i=Y=num--=0
// num === true
console.log(soultion(str1)); // true
var str2 = "Pyy";
// Pyy -> PYY
// 0번째i=P=num++=1, 1번째i=Y=num--=0, 2번째i=Y=num--=-1
// num =-1 이므로 false 반환
console.log(soultion(str2)); // false
Q. 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
function solution(absolutes, signs) {
// 1. return해야하는 answer 생성
var answer = 0;
// 2. 두 배열을 비교해 가면서 값을 더하거나 뺴줄 것
// 2-1. 두 배열은 크기가 같음
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;
}
var absolutes = [4, 7, 12];
var signs = [true, false, true];
console.log(solution(absolutes, signs)); // 9
// var absolutes = [1,2,3];
// var signs = [false,false,true];
'📚강의록📚 > 스파르타)Javascript' 카테고리의 다른 글
JavaScript 문법 종합 2주차(일급 객체로서의 함수💫) (0) | 2023.05.24 |
---|---|
JavaScript 문법 종합 2주차(ES6 문법) (0) | 2023.05.24 |
JavaScript 문법 종합 1주차(객체, 배열) (0) | 2023.05.23 |
JavaScript 문법 종합 1주차(조건문, 반복문) (0) | 2023.05.23 |
JavaScript 문법 종합 1주차(변수, 데이터타입, 연산자, 함수) (0) | 2023.05.22 |
Comments