| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 파이썬
- modbus
- monorepo
- javascirpt
- AI
- LLM
- frontend
- DP
- rag
- VectoreStore
- CI/CD
- javascript
- build
- 알고리즘
- ansible
- Two Pointer
- docker
- Infra
- dfs
- typescript
- 프로그래머스
- queue
- heapq
- Algorithm
- OpenAI
- python
- jenkins
- turbo
- React
- BFS
- Today
- Total
목록Algorithm (36)
DM Log
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]1. 주어진 배열을 한 행씩 선택, 연속으로 같은 열 선택 불가2. 최종적으로 누적된 숫자의 합이 최대가 되도록 하는 문제 [문제 해결 방안]✅ DP(동적 계획법) 문제각 칸에서 이전 행의 같은 열을 제외한 나머지 열 중 최댓값을 선택해 더하는 방식[문제 해결 코드] - 초기 코드시간 복잡도: O(N)공간 복잡도: O(N) (DP 배열 별도 사용)def solution(land): answer = 0 dp_ma..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]1. 숫자 리스트 numbers가 주어짐2. 숫자를 더하거나 빼서 target이 되는 경우의 수를 구하는 문제3. 순서대로 연산되며, 모든 경우 탐색 필요 [문제 해결 방안]✅ DFS 방식 (재귀)모든 경우의 수(더하거나 빼거나)를 이진 트리 구조처럼 재귀적으로 탐색number를 전부 사용했으면(level == max_level)에 합이 target이면 answer 카운트 증가숫자 배열을 끝까지 탐색한 시점✅ BFS 방식..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/1844 [문제 간단 요약]1. (0, 0)에서 출발해 (n-1, m-1)까지 이동2. maps[y][x] = 1은 이동 가능, 0은 벽3. 최단 거리를 찾아야 하며, 이동은 상하좌우만 가능4. 도달할 수 없다면 -1 반환 [문제 해결 방안]1. 탐색 경로 중 가장 짧은 길이를 찾아야 한다는 문제 이므로, 최단거리 알고리즘(BFS) 사용 시작점 (0,0)부터 BFS로 인접 노드 탐색벽이 아닌 (maps[y][x] == 1) 좌표만 다음 후보로 추가방문했던 위치는 used[y][x]로 관리목적지 (h-1, w-1)에 도달하면 이동 횟수 반환도달 못할 경우 -1 반환 [문제 해결 코드 ..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]1. 프로세스가 아래의 규칙에 따라 작업이 수행 우선 순위가 가장 높은 프로세스를 우선 실행가장 높은 프로세스가 아닌 경우 대기 목록의 맨뒤에 위치2. 특정 위치의 프로세스가 몇 번째로 실행되는지 반환[문제 해결 방안]1. 현재 프로세스의 위치의 인덱스를 함께 Queue에 저장2. 큐에서 하나씩 꺼내며, 더 높은 우선순위가 있는지 확인3. 가장 높은 우선 순위 일 경우, 카운트 증가 및 특정 위치의 프로세스인지 확인 [..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]1. 어떤 전화번호가 다른 전화번호의 접두어인 경우가 있는지 판별2. 접두어 관계가 있으면 false, 없으면 true [문제 해결 방안]1. 정렬 + 인접 비교 phone_book을 오름차순 정렬정렬된 배열에서 i번 전화번호가 i+1번 전화번호의 접두어인지 확인 2. 해시 (Set) 이용 [문제 해결 코드 - python]def solution(phone_book): answer = True phone_boo..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]1. 문자열로 표현된 튜플 정보가 주어졌을 때, 실제 튜플을 반환하는 문제2. 집합이 하나씩 늘어날 때 새로 추가되는 숫자만 추적하면 튜플 반환 가능[문제 해결 방안]1. 문자열을 파싱하여 각 리스트로 구성2. 리스트를 원소 수가 적은 수로 정렬3. 새로 등장하는 숫자만 추출 [문제 해결 코드 - python]def solution(s): arr = [] s=s[1:-1] li = '' fo..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]1. 도시 이름이 주어지고 LRU(Least Recently Used) 방식의 캐시를 구현하는 문제가장 오래 전에 사용된 데이터를 가장 먼저 제거하는 캐시 교체 알고리즘캐시의 크기 제한이 있을 때, 새 데이터를 넣기 위해 캐시에서 데이터를 제거해야 한다면, 가장 오래 사용되지 않은 데이터부터 제거캐시에 접근(조회 또는 삽입)한 데이터는 가장 최근에 사용된 것으로 간주되어 맨 뒤로 이동[문제 해결 방안]1. 도시 ..
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 간단 요약]1. H-Index 지표를 구하는 문제2. 논문 n편 중, h번 이상 인용된 논문 h 편 이상인 h의 최댓값을 구하는 문제[문제 해결 방안]1. 배열을 역순으로 정렬하여 논문 인용 수 보다 논문 수(배열의 index + 1)가 작을 때의 논문 수 - 1 값이 정답2. 모든 논문이 자신보다 많은 인용을 받았다면 H-Index는 전체 논문 수 정답 [예시]논문 인용 수논문 수조건 부합61✅52✅33✅14❌05❌논문..