전체 글 108

[JavaScript 프로그래머스 공부] 배열 원소의 길이

배열 원소의 길이내가 직접 풀어본 코드function solution(strlist) { let answer = []; for(let i = 0; i.length는 문자열의 길이를 알려주는 속성으로 반복문을 돌면서 이걸 하나씩 구해서 배열에 담으려면 push()를 사용하면 됨!push(문자열.length) 이런식으로 배열안에 값이 차곡차곡 들어가도록 하기다른방식 1function solution(strlist) { return strlist.map(str => str.length);}map으로 배열을 순회하면서 새로운 배열을 만들고 각문자열의 길이만 뽑아서 새로운 배열로 만들어서 돌려준다!map방식으로 해볼걸 생각을 못했다.. 조금 더 단순하지 않은 방식으로 풀어보도록 노력해봐야겠다..!

카테고리 없음 2025.04.22

[JavaScript 프로그래머스 공부] 짝수의 합

짝수의 합 내가 직접 풀어 본 코드function solution(n) { let answer = 0; for (let i = 0; i%를 사용해서 나머지가 1일 땐 홀수 0일 땐 짝수로 구분하고 조건을 줘서 짝수끼리만 더할 수 있도록 하기 다른 방식 1function solution(n) { let answer = 0; for (let i = 0; i if문을 빼고 조건 없이 처음부터 짝수만 반복하는 코드 짝수만 반복하면 되는 문제였는데 굳이 조건문을 넣어서 불필요한 코드를 늘렸다.. 생각해 보니까 굳이 넣어도 되지 않았는데 ㅜㅜ다음엔 조금 더 효율적인 코드를 짜기 위해 노력해야겠다. 다른 방식 2function solution(n) { var half = Math.floor..

카테고리 없음 2025.04.22

19주차 (1)

📌 NestJS + Redis Geo 기능 정리🚀 NestJS에서 Redis의 Geo 기능을 활용한 위치 데이터 저장 및 조회1️⃣ Redis Geo 개념✅ Geo 데이터란?위도(Latitude) & 경도(Longitude) 좌표를 기반으로 위치 정보를 저장 및 검색하는 기능Redis는 GEOADD, GEOSEARCH 등의 명령어를 제공✅ Geo 데이터 저장 구조Redis에서는 위치 데이터를 GeoSet(정렬된 Set) 형태로 저장함Key: "bookmarksS" Member: "1" (북마크 ID) Value: (Longitude, Latitude)2️⃣ NestJS에서 Redis Geo 기능 적용✅ 📌 Geo 데이터 추가 (geoadd)async geoAddBookmarkS( key: st..

카테고리 없음 2025.03.03

18주차 (1)

15. Stack과 Queue 비교 설명Stack과 Queue는 데이터를 저장하고 관리하는 자료구조이며, 각각 고유한 방식으로 데이터를 처리합니다.1) Stack (스택)정의: Stack은 LIFO(Last In, First Out, 후입선출) 원칙을 따르는 자료구조입니다.특징:데이터를 한쪽 끝(Top)에서만 추가(push)하고 제거(pop)할 수 있음.재귀 함수 호출, 수식 계산(예: 후위 표기법), 브라우저 뒤로 가기 등의 기능에 사용됨.주요 연산:push(item): 데이터를 스택의 맨 위(Top)에 추가.pop(): 스택의 맨 위 데이터를 제거하고 반환.peek(): 스택의 맨 위 데이터를 확인하지만 제거하지 않음.isEmpty(): 스택이 비어 있는지 확인.2) Queue (큐)정의: Queue..

카테고리 없음 2025.02.24

17주차 (4)

13. DFS와 BFS의 차이DFS (깊이 우선 탐색)방식: 한 방향으로 가능한 한 깊게 탐색한 후, 더 이상 갈 수 없으면 이전 단계로 돌아와서 다른 방향을 탐색합니다.자료구조: 주로 스택(또는 재귀 호출 스택)을 사용합니다.특징:재귀적으로 구현하기 쉽습니다.메모리 사용이 상대적으로 적을 수 있지만, 경우에 따라 최악의 경우 재귀 깊이가 너무 깊어질 수 있습니다.경로 탐색 문제(예: 미로 찾기)에서 한 방향으로 깊게 탐색해 빠르게 해답을 찾을 수 있는 경우 유리합니다.BFS (너비 우선 탐색)방식: 시작 노드에서부터 인접한 모든 노드를 먼저 탐색한 후, 그 다음 레벨로 넘어갑니다.자료구조: 큐를 사용하여 현재 레벨의 모든 노드를 관리합니다.특징:최단 경로 문제(예: 최단 거리 찾기)에 적합합니다.모든 ..

카테고리 없음 2025.02.20

17주차 (2)

BigO에 대해 설명해주세요 Big-O 표기법 (시간 복잡도)Big-O 표기법은 알고리즘의 성능을 입력 크기(n)가 커질 때의 "최악의 경우" 실행 시간을 분석하는 방법입니다.O(1): 입력 크기에 상관없이 항상 일정한 시간이 소요됨O(n): 입력 크기에 비례하는 시간이 소요됨O(n²): 이중 반복문 등으로 인해 입력 크기의 제곱에 비례하는 시간이 소요됨O(n log n): 분할 정복 알고리즘(예: 병합 정렬, 퀵 정렬, 힙 정렬) 등에서 나타나는 시간 복잡도 다음의 정렬을 설명하고 본인이 가장 편한 언어를 사용하여 로직을 구현해주세요선택 정렬(Selection Sort)function selectionSort(arr) { for (let i = 0; i 버블 정렬(Bubble Sort)function..

카테고리 없음 2025.02.18

17주차 (1)

기회를 모두 소진시 삭제완료 Node.js는 single-threaded 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요.Node.js는 non-blocking, asynchronous 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요.9. Node.js의 Single-Threaded, Non-Blocking, Asynchronous 특성Single-Threaded정의: Node.js는 자바스크립트 엔진(V8)을 기반으로 단일 메인 스레드에서 자바스크립트 코드를 실행합니다.의미:모든 자바스크립트 코드는 기본적으로 하나의 스레드에서 순차적으로 실행됩니다.개발자가 직접 멀티스레드를 다루지 않아도 되며, 코드를 작성할 때 동시성 문제(경쟁 상태 등)를 상대적으로 단순하게 관리할 수 있습니다..

카테고리 없음 2025.02.17