| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- queue
- 알고리즘
- jenkins
- 파이썬
- Infra
- OpenAI
- heapq
- 프로그래머스
- DP
- AI
- javascirpt
- modbus
- React
- CI/CD
- turbo
- Two Pointer
- rag
- python
- javascript
- frontend
- dfs
- Algorithm
- LLM
- BFS
- monorepo
- typescript
- VectoreStore
- ansible
- docker
- build
- Today
- Total
목록Algorithm (36)
DM Log
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약] 미로에서 시작 지점(S) → 레버(L) → 출구(E) 순서대로 이동해야 한다.이동은 상하좌우로만 가능하며, 벽(X)은 통과할 수 없다.각 이동은 1초가 걸린다.레버를 당기지 않으면 출구로 갈 수 없다.도달할 수 없는 경우 -1을 반환한다. [문제 해결 방안]이 문제는 최단 경로 탐색 문제이며, BFS(너비 우선 탐색)으로 해결 가능하다.해결 순서:S → L 최단 시간 BFSL → E 최단 시간 BFS두 구간 모두 도달..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약] 시작 단어(begin)를 목표 단어(target)으로 변환변환 규칙:한 번에 한 글자만 바꿀 수 있음변환된 단어는 반드시 주어진 단어 목록(words)에 포함begin에서 target으로 변환하는 최소 단계 수를 반환변환이 불가능한 경우 0 반환 [문제 해결 방안]그래프 탐색 문제: 각 단어를 노드로 보고, 한 글자 차이 나는 단어끼리 연결DFS 또는 BFS로 탐색 가능DFS: 모든 경로 탐색 후 최소 단계 갱신BFS..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]남은 시간 n, 각 작업의 작업량 배열 works가 주어짐1시간 동안 한 작업량을 1 줄일 수 있음모든 시간이 끝난 뒤 남은 작업량들의 제곱합이 최소가 되도록 작업을 분배결과: 최소화된 제곱합 [문제 해결 방안]제곱합을 최소화하려면 가장 큰 작업부터 줄여야 함따라서 최대 힙 구조를 사용해야 함Python: heapq에 음수를 넣어 최대 힙처럼 사용JavaScript: 힙 내장 기능이 없으므로 MaxHeap 클래스를 직접 ..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/42628?language 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약] 큐에 숫자를 삽입하거나 최댓값/최솟값을 삭제하는 연산이 주어진다.모든 연산을 수행한 후, 큐가 비어 있지 않다면 [최댓값, 최솟값]을 반환하고, 비어 있으면 [0, 0]을 반환한다. [문제 해결 방안]✅ Heap파이썬의 heapq는 최소 힙만 지원하므로,최솟값 관리: 일반 힙(li)최댓값 관리: 음수 변환하여 힙(revert_li)삽입 시 두 힙에 모두 넣어 동기화삭제 시 조건에 맞게 하나에서 heap..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr[문제 간단 요약]꼭대기에서 시작해 바로 아래 왼쪽/오른쪽으로만 이동지나간 숫자의 합이 최대가 되는 경로의 합을 반환[문제 해결 방안]동적 프로그래밍 적용아래 행에서 위로 올라가며 각 칸에 만들 수 있는 최대 합을 누적바텀업 방식 사용 시 전체 원소를 한 번씩만 갱신[문제 해결 코드 - python]def solution(triangle): answer = 0 dp = [] for i in range(len(triangle)..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr[문제 간단 요약]n대의 컴퓨터가 있고, computers[i][j] = 1이면 i와 j가 직접 연결됨.네트워크(연결 요소)의 개수를 구해야 한다.즉, 연결된 노드들의 그룹 수를 찾는 문제.[문제 해결 방안]그래프의 연결 요소 개수를 찾는 전형적인 문제.모든 노드에 대해 아직 방문하지 않은 경우 DFS/BFS 탐색을 수행.탐색을 시작할 때마다 네트워크 수를 +1 증가.인접 행렬이므로 각 노드마다 모든 노드를 확인 → 시간 복잡도는 O(n^2..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]엘리베이터가 현재 층 storey에 있음.버튼을 눌러 1의 자리 단위로 올리거나 내리는 방식으로 0층까지 이동해야 함.한 번 누를 때마다 1의 자리 기준으로 +1 또는 -1만 가능.버튼 누르는 횟수를 최소화해야 함.반환: 최소 버튼 누름 횟수.[문제 해결 방안]핵심 아이디어: 그리디(Greedy) + 자리수 처리현재 층의 1의 자리(stor = storey % 10)를 확인stor stor > 5: 올라가서 반올림 처리..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약] 양의 정수로 이루어진 배열 sequence와 정수 k가 주어짐.합이 정확히 k가 되는 연속 부분 수열 [s, e]를 찾아야 함.답이 여러 개라면 길이가 가장 짧은 구간을 선택.반환 형식: [시작 인덱스, 끝 인덱스]. [문제 해결 방안]모든 수가 양수이므로, 투 포인터(슬라이딩 윈도우) 기법을 사용 가능.두 포인터 s, e를 이용해 구간의 합 ssum을 유지하면서 탐색:ssum ssum >= k → 왼쪽 포인터 이동..