본문 바로가기

전체 글

(152)
13. 재귀함수 💫재귀함수란? 프로그래밍에서 재귀(Recursion)란 자신을 정의할 때 자기 자신을 재참조하는 것을 말한다. 따라서 재귀 함수란 함수가 호출되어 실행할 때, 함수 내부에서 자기 자신을 다시 호출하는 재귀 호출(Recursive Call)의 형태를 말한다. 💫스택(Stack) 재귀 호출을 이해하는 것에 앞서 스택(Stack)이라는 자료 구조를 이해해야 한다. Stack : 자료의 입출력이 한 방향에서만 이루어지는 자료구조. 프링글스를 중간부터 먹을 수는 없다. 맨 아래 있는 프링글스를 먹으려면 맨 위에서부터 차근차근 먹어야한다. 즉, 한 쪽 끝에서만 넣거나 뺄 수 있는 선형 구조이며 가장 나중에 들어간 자료가 가장 먼저 나온다. 이 것을 LIFO(Last In First Out) 으로 부르기도 한다. 💫..
4. 서울에서 김서방 찾기 (LV.1) 💫 내가 작성한 코드 function solution(seoul) { let answer = ""; const result = seoul.indexOf("Kim"); answer = `김서방은 ${result}에 있다`; return answer; } 💫 Review 1. indexOf() string.indexOf ( searchValue, start ) : 검색할 문자가 처음 나타나는 위치값 or 검색할 문자가 없으면 -1 반환 searchValue : 검색할 문자 (필수) start : 문자열에서 검색을 시작할 위치 (선택)
3. 핸드폰 번호 가리기 (LV.1) 💫 내가 작성한 코드 function solution(phone_number) { const str = phone_number.toString(10).split(""); const arr1 = str.slice(0,-4); const arr2 = str.slice(-4); return arr1.map(ele => { let result = ele.replace(ele, "*"); return result; }) .concat(arr2).join(""); } 💫 review 1. 다른 사람이 푼 방법 function solution(phone_number) { let result = "*".repeat(phone_number.length - 4) + phone_number.slice(-4); return ..
12. return 여지껏 return 에 대해 너무 모호하게 알고 있어서 정리 한 번 하고자 한다. function sum(num1, num2) { num1+num2 } sum(1,2); 위와 같이 코드를 작성하면, 당연하게도 아무것도 출력되지 않는다. sum 함수가 실행은 되었으나 출력 시키는 명령어가 없기 때문이다. function sum(num1, num2) { num1+num2 } console.log(sum(1,2)); 이렇게하면 출력이 될 것 같지만, 아쉽게도 undefined 가 출력된다. sum(1,2); 실행문으로 함수를 전달해주는 구문이 없기 때문이다. 그 . 러 . 나 function sum(num1, num2) { return num1+num2; } console.log(sum(1,2)); // 3 ..
2. 이상한 글자 만들기 (LV.1) 💨 내가 작성한 코드 function solution(s) { const str = s.split(" "); return str .map((ele) => { let result = ""; ele.split("").forEach((value, index) => { if (index % 2 === 0) { result += value.toUpperCase(); } else { result += value.toLowerCase(); } }); return result; console.log(result); }) .join(" "); } ✅ 새롭게 알게된 것 map vs. forEach map : 동일한 사이즈의 새로운 배열을 반환. forEach : 기존 배열에 업데이트. 즉, map을 이용하면 원본을 건드리..
11. 팩토리 함수 ◼ Factory Function ? 팩토리 함수는 클래스나 생성자 함수에는 속하지 않는 함수이자, 새로운 객체를 리턴하는 함수이다. new 키워드가 없으면 팩토리 함수일 확률이 높다. const name = "mung"; const age = 28; const user = { name, age, setUserName(name) { this.userName = name; return this; }, }; console.log(user.setUserName("choi").userName); // "choi" user.setUserName("choi") 는 .setUserName() 을 user 에게 적용한다. 이 때, this 는 user 가 되며 .setUserName() 내부의 this 를 통해 use..
10. for...in / 기명 함수 표현식 💨 for...in for...in 문은 상속된 열거 가능한 속성들을 포함하여 객체에서 문자여려로 키각 지정된 모든 열거 가능한 속성에 대해 반복한다. 문법 : for (variable in object) { ... } 파라미터 : variable => 매번 반복마다 다른 속성이름이 변수(variable) 로 지정된다. object => 반복 작업을 수행할 객체로 열거형 속성을 가지고 있는 객체. const object = { name: "mung", age: 28 }; for (const property in object) { console.log(`${property}: ${object[property]}`); } ✅ for...in 을 사용하는 이유 for...in 구문은 객체의 반복을 위해 사용하..
1. 자연수 뒤집어 배열로 만들기( LV.1 ) 💨 나의 풀이 function solution(n) { const str = String(n).split(""); console.log(str); const reverseAnswer = str.reverse(); console.log(reverseAnswer); function returnInt(element) { return parseInt(element, 10); } return reverseAnswer.map(returnInt); } console.log(solution(7582058)); ✅ 더 나아질 수 있는 부분 1. 변수로 선언하는 것 줄이기 String(n).split("").reverse() 이렇게 이어써도 됨. 2. 리팩토링 function solution(n) { return Stri..