전체 글 79

[JS] 프로그래머스 표현 가능한 이진트리

https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이)이진트리가 표현 가능하려면부모 노드가 0일 때 자식 노드도 0이어야 한다= 부모 노드가 0일 때 자식 노드가 1이라면 -> 표현 불가! 나머지는 주석을 참고 function solution(numbers) { var answer = []; for (const number of numbers) { // 1. 이진수로 변환 let bNumber = number.toString(2); ..

[JS] 프로그래머스 완전 탐색

https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 전형적인 0-1 배낭 문제배낭의 무게 + 1만큼 배열의 길이를 선언한 뒤에물건을 모두 넣으면서 배열을 갱신해 나간다. -> 완전 탐색으로 변형하자면배낭의 무게 = A의 최댓값 n - 1 (n 이상이면 안되므로)=> 배열의 길이 n 선언훔치는 물건 info를 순회하면서 배열을 갱신해 나간다. 사실 이 문제를 3번 풀었는데1. 2차원 배열2. 1차원 배열, 새로운 배열 갱신 (이전 배열, 갱신된 배열 바꿔치기 반복)3. 1차원 배열, 역순(이전 값 오염 ..

[JS] 프로그래머스 노란불 신호등

https://school.programmers.co.kr/learn/courses/30/lessons/468371 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr /* 설계 최대공약수, 최소공배수 (유클리드 호제법 그냥 외우자) 최대 공약수 -> 계속 나눠서 0이 되는 바로 전 값 72, 30 -> 30, 12(나머지) -> 12, 6 -> 6, 0 => 6 전체 최소공배수를 구한다음에 최소 공배수 시간 안에 노란색이 있다면 성공 시간이므로 현재 신호등 = (t-1) % (자신의 주기 G + Y + R) G (b === 0 ? a : gcd(b, a % b)); /..

[JS] 프로그래머스 풍선 터트리기

https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 열심히 공부한 게 아까워서... 주석으로 설명했어요. 도움되셨으면 좋겠어요(투 포인터 AI한테 물어봐도 모르겠어서 직접 정리했습니다.)/*설계한 번만 번호가 더 작은 풍선최소, 최대투 포인터 방식왼쪽 최솟값, 오른쪽 최솟값 + (왼쪽 포인터, 오른쪽 포인터 이동하면서 확인)판단 기준 : 현재 포인터에 있는 값이 살아남을 수 있는가1. 왼쪽 최솟값 왼쪽 최솟값은 항상 오른쪽 최솟값보다 작으므로 자신을 풍선을 터트릴 수 있음 = 피하자-> 확실하게 살아남..

[AI Agent] 정리

출처 https://aws.amazon.com/ko/what-is/ai-agents/정의환경과 상호 작용 / 데이터 수집 / 데이터를 사용하여 사전 결정된 목표를 달성하기 위해 필요한 작업을 주도적으로 수행하는 소프트웨어 프로그램Ex) 목표 설정(사람) → 최적의 조치 독립적으로 시행 (AI Agent)종류개별 AI 에이전트 - 특정 하위 작업 정확하게 수행오케스트레이터 에이전트 - 여러 에이전트 활동 조정 (크고 복잡한 작업 수행)정의 주요 원칙(AI Agent라 불리는 이유)자율성Rule based가 아님목표 지향적 행동= 성공을 극대화인지데이터를 수집하여 환경과 상호 작용데이터 수집 by API (외부 환경)합리성추론 기능 O도메인 지식 + 과거 기억 → 정보에 의한 의사결정최적의 성능/결과능동성입..

Computer/AI 2026.08.17

[JS] Object vs Map vs Set

알고리즘을 풀다가 너무 궁금해져서 정리하게 되었다. (이전에도 알고 있었지만 이렇게 정리해두지 않으면 날라간다.) ObjectC++ 구조체처럼 작동한다. 힙 메모리에 미리 공간을 할당해서 캐싱해버린다. (이 때문에 키 값이 String 혹은 Symbol만 된다.)접근 속도가 매우 빠르다.그러나 새로운 키가 추가되거나 삭제되는 순간이 자주 발생하면 Object는 다시 공간을 할당해야 하기 때문에 매우 느려지며 이 과정도 자주 반복되면 그냥 해시 테이블로 만들어버린다. (Object의 장점 소멸)따라서 키 값은 그대로 있고 값만 바뀌며 빠르게 접근하고 싶은 경우에 사용한다.Map내부적으로 연결리스트 + 해시 테이블 구조를 사용한다.좀 더 자세히 들어가면, 삽입 순서를 기억하는 데이터 배열(연결리스트 역할)과..

[네트워크] 링크 계층

https://app.notion.com/p/6-1-358e2a9f374980768f9fd7c68c28e472목표종단 간 통신 경로상의 개별 링크를 따라 패킷이 어떻게 전달되는지어떻게 캡슐화(L3 → L2) ⇒ 단일 링크 전송통신 경로 상의 링크마다의 링크 계층 프로토콜브로트캐스트 링크에서의 전송 충돌링크 계층 주소체계 (feat. 네트워크 계층 주소체계)스위치 vs 라우터링크 계층 채널링크 vs 채널링크 - 물리채널 - 논리브로드캐스트 채널LAN, 위성 네트워크, HFC(hybrid fiber-coaxial cable) 접속 네트워크에서 다수의 호스트 연결매체 접속 프로토콜(media access protocol) ⇒ 프레임 전송중앙 컨트롤러 전송 조정호스트 자체적으로 전송 조정점대점(point-to-..

[JS] 코딩테스트 치팅 시트

0. 판단 기준의 뼈대: N 크기 → 허용 시간복잡도문제를 보면 가장 먼저 입력 크기 N을 확인한다. 채점 서버는 보통 1초에 약 1억(10^8)번 연산을 처리한다고 가정한다. (JS는 다른 언어보다 느려서 보수적으로 5천만~1억 정도로 생각하는 게 안전하다.)N 크기 허용 복잡도 대표 알고리즘N ≤ 11O(N!)순열 완전탐색, 브루트포스N ≤ 20~22O(2^N)비트마스킹, 부분집합, TSPN ≤ 100O(N^3)플로이드-워셜, 3중 반복 DPN ≤ 2,000O(N^2)2중 반복, 일반 DPN ≤ 100,000 (10^5)O(N log N)정렬, 다익스트라, 이분탐색N ≤ 1,000,000 (10^6)O(N) 또는 O(N log N)투 포인터, 누적합, BFS/DFSN ≤ 10^8O(N) 아슬아슬단순 ..

[React] Vitest

Vitest 사용하면서 개념 다시 다지기useSearch 훅에 테스트를 붙이기로 하고 Vitest를 설치하는데, 설치 명령어 한 줄에 라이브러리가 5개나 딸려 들어갔다. vitest, @testing-library/react, jsdom, @vitejs/plugin-react... 일단 예제 코드를 따라 설치하고 돌리면 되긴 했지만, 이렇게 이해 없이 넘어가면 나중에 에러가 났을 때 뭐가 문제인지 하나도 못 짚을 것 같았다. 그래서 하나씩 "이게 왜 필요하지?"를 파고들었다.1. 모킹이란? - 테스트 대상을 격리하기 위한 도구 (단위 테스트의 본질)테스트 코드를 보다 보니 vi.mock('react-router', ...) 같은 게 계속 나왔다. 처음엔 그냥 "가짜로 뭘 만드는 거겠지" 정도로만 이해했는..

Computer/리액트 2026.07.13

[네트워크] TCP의 혼잡 제어

https://app.notion.com/p/3-2-TCP-34ee2a9f37498095b5c5d5cf6789c76d?source=copy_link#34fe2a9f3749805abb2cea06746fd38e 3장 2, 연결지향형 TCP, 혼잡 제어 | Notion목표forest-helenium-82b.notion.site TCP의 혼잡 제어전통적인 방식의 혼잡 제어 = 종단 간의 혼잡 제어(한번에 보낼 수 있는 양 = 윈도우)고려해야 할 점TCP 송신자는 송신자 전송 트래픽 전송률을 어떻게 제한하는가? - 혼잡 윈도우LastByteSent - LastByteAcked ≤ min{cwnd, rwnd}rwnd가 아주 크다면 → cwnd가 혼잡 제어 (네트워크로 트래픽을 전송할 수 있는 속도에 제약)rwnd/..