알고리즘은 특정 작업을 수행하기 위한 과정이나 단계이다.
두 숫자를 더한 합계를 반환하는 함수를 작성하시오.
add
함수에 num1
과num2
라는 인자를 받아 result
반환문자열을 받으면 각 문자(영문 소문자나 숫자)의 개수를 반환하는 함수를 작성하시오.
charCount('aaaa'); // {a: 4}
charCount('my phone number is 0000');
// 공백, 달러 기호, 밑줄, 숫자를 포함?
charCount('Hello');
// 대문자도 포함?
charCount('');
// {} 빈 객체 반환? null, false, undefined 반환? 에러 반환?
문자열을 받으면 각 문자(영문 소문자나 숫자)의 개수를 반환하는 함수를 작성하시오.
기본적인 구성 요소들을 단계를 나누어 작성하기
function charCount(str) {
// 마지막에 반환할 객체 만들기
// 문자열에 반복문 적용하기
// 만약 문자가 숫자/문자이며 객체에 있으면 값에 1을 더하기
// 문자가 문자가 숫자/문자이며 객체에 없으면 키를 추가하고 값을 1로 설정하기
// 문자가 공백, 마침표 등이 아무것도 하지 말기
// 객체 반환하기
}
문자열을 받으면 각 문자(영문 소문자나 숫자)의 개수를 반환하는 함수를 작성하시오.
막히는 부분은 무시하고 당장 해결할 수 있는 단계부터 작성하고 돌아오기
function charCount(str) {
// 마지막에 반환할 객체 만들기
let obj = {};
// 문자열에 반복문 적용하기
for (let i = 0; i < str.length; i++) {
let char = str[i].toLowerCase();
if (/[a-z0-9]/.test(char)) {
// 만약 문자가 숫자/문자이며 객체에 있으면 값에 1을 더하기
if (obj[char] > 0) {
obj[char]++;
}
// 문자가 문자가 숫자/문자이며 객체에 없으면 키를 추가하고 값을 1로 설정하기
else {
obj[char] = 1;
}
}
// 문자가 공백, 마침표 등이 아무것도 하지 말기
// 객체 반환하기
return obj;
}
}
문자열을 받으면 각 문자(영문 소문자나 숫자)의 개수를 반환하는 함수를 작성하시오.
function charCount(str) {
let obj = {};
for (let char of str) {
if (isAlphaNumeric(char)) {
char = char.toLowerCase();
obj[char] = ++obj[char] || 1;
}
}
return obj;
}
// 각 문자가 영문 소문자나 숫자인지 확인하는 함수
function isAlphaNumeric(char){
let code = char.charCodeAt(0);
return !(!(code > 47 && code < 58) && // 0-9
!(code > 64 && code < 91) && // A-Z
!(code > 96 && code < 123)); // a-z
}
✍️ <JavaScript 알고리즘 & 자료구조 마스터클래스> 강의를 들으며 알게 된 내용을 정리하였습니다.