일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- string
- 기억장치
- 운영체제
- 정규표현식
- 반응형 웹
- ECMAScript6
- git
- Algorithm
- react
- c++
- 애플
- db
- 컴퓨터
- 식물키우기
- 자바스크립트
- 배포
- ECMAScript2015
- 아이폰
- LeetCode
- 자바
- Javascript
- codewars
- styled-components
- ES6
- 알고리즘
- 리액트
- java
- 데이터베이스
- binary
- 맛집
- Today
- Total
에브리 저장소

최근 면접 스터디를 진행하며 받은 질문 중, 클로저를 사용할 때 주의해야 할 점에 대해 질문을 받았으나 선뜻 대답하지 못했습니다. 😢 이에 메모리 누수를 주의해야 한다.라는 피드백을 받고 알아보니 클로저인 내부 함수가 참조하는 외부 함수의 객체들을 더 이상 사용하지 않아도 가비지 콜렉터가 수집하지 못한다는 내용이 있었습니다. 키워드만 정리해놓고 잊고 있었는데, 다른 분께서 자바스크립트의 가비지 콜렉터 동작 방식에 대해 내용이 있으면 좋을 것 같다는 피드백을 주셨고, 이를 계기로 정리해서 공유합니다. 틀린 내용 지적 등의 피드백은 언제나 감사히 받겠습니다. 참고 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management https:/..

문제 링크 https://leetcode.com/problems/longest-substring-without-repeating-characters/ 풀이 이 문제는 문자열에서 중복 없이 가장 긴 substring의 길이를 반환하는 문제이다. 내가 접근한 방식은 완전 탐색이다. 자신보다 뒤에 있는 문자열들을 순회하면서 중복이 발생하기 전까지의 길이를 찾아 저장해놓은 max length와 비교하는 로직을 작성했다. O(N^2)의 시간 복잡도를 가지기 때문에 상대적으로 너무 느리다. 다른 사람들의 풀이를 보았고, O(N)으로 푸는 코드를 찾았다. 이 코드는 각 문자열을 map이라는 객체에 저장하면서 value로 이 문자가 가장 마지막으로 나온 index를 저장한다. 이로 인해 한번 순회로 중복 없는 최대 길..

문제 링크 https://leetcode.com/problems/sum-of-two-integers/ 풀이 이 문제에서는 +, - 연산자를 사용하지 않고 두 인자의 합을 반환하는 함수를 만들어야 한다. 문제의 조건을 확인하고 비트 연산자를 써야겠다고 생각했으나, 어떤 연산자를 써야 할까 고민했다. 정확한 덧셈을 위해서 Carry와 이를 제외한 합을 알아야 한다. Carry를 알기 위해 사용할 수 있는 비트 연산자는 AND이다. 둘 다 1일 때만 1이므로 AND의 결과가 1이라면 Carry가 발생했음을 알 수 있다. Carry를 제외한 합은 XOR 연산자로 알 수 있다. 둘 중 하나만 1일 때 XOR의 결과가 1이기 때문이다. 실제로 컴퓨터가 덧셈을 AND, XOR 연산자를 통해서 한다고 한다. 덧셈을 실..