일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- aws iam role
- AWS KMS
- Today
- Total
목록코딩테스트/python (105)
기록

문제 개요- url : https://school.programmers.co.kr/learn/courses/30/lessons/42584# 입력값:가격 배열 prices출력값: 각 가격이 떨어지지 않은 기간을 나타낸 배열예제:prices = [1, 2, 3, 1, 3]출력: [4, 2, 1, 1, 0] 스택을 활용한 풀이 (Monotonic Stack)스택은 “아직 가격이 떨어지지 않은 인덱스”를 관리한다.새로운 가격이 나타나면, 스택에 있는 가격과 비교해서 “떨어지는 순간”을 찾아 한 번에 처리할 수 있다.코드:def solution(prices): n = len(prices) answer = [0] * n stack = [] for i in range(n): whil..
1. 문제 개요- url : https://school.programmers.co.kr/learn/courses/30/lessons/42583# 트럭이 여러 대 줄지어 대기 중이다. 다리의 길이는 bridge_length이며, 다리가 견딜 수 있는 최대 무게는 weight이다. 각 트럭의 무게는 truck_weights 배열에 순서대로 주어진다.트럭은 순서대로만 다리에 올라갈 수 있고, 다리 위에서는 최대 bridge_length만큼의 트럭만 이동할 수 있다. 모든 트럭이 다리를 건널 때까지 걸린 최소 시간을 구해야 한다.2. 핵심 아이디어문제의 핵심은 트럭의 실제 위치와 다리 위의 무게를 함께 관리하는 것이다. 단순히 다리 위에 트럭 수만 세거나, 무게만 추적하면 순서와 시간 조건을 만족하기 어렵다.핵..
문제 설명- url : https://school.programmers.co.kr/learn/courses/30/lessons/42587 운영체제가 프로세스를 다음과 같은 방식으로 관리한다고 가정한다.큐에서 프로세스를 하나 꺼낸다.큐에 대기 중인 프로세스 중 더 높은 우선순위가 있으면 다시 뒤로 넣는다.그렇지 않으면 바로 실행된다.특정 프로세스가 몇 번째로 실행되는지 구하는 것이 문제의 목표이다.예를 들어,priorities = [2, 1, 3, 2], location = 2이면, 3번째 프로세스가 가장 먼저 실행되므로 결과는 1이다. 처음에는 큐에서 매번 꺼낸 프로세스를 남은 프로세스들과 비교하는 방식을 생각할 수 있다.def solution(priorities, location): queue =..
문제 설명- url : https://school.programmers.co.kr/learn/courses/30/lessons/12909 문자열이 주어질 때, 문자열이 올바른 괄호로 이루어져 있는지를 판단하는 문제이다. 주어진 문자열은 오직 '('와 ')'로만 이루어져 있으며, 괄호의 짝이 맞아야 한다.예를 들어,"()()", "(())()"는 올바른 괄호이다.")()(", "(()("는 올바르지 않은 괄호이다.풀이 과정가장 직관적인 방식은 스택 혹은 카운팅 변수를 이용하여 여는 괄호와 닫는 괄호의 짝을 실시간으로 확인하는 것이다.문자열을 왼쪽부터 한 글자씩 순회한다.'('가 나오면 answer를 1 증가시킨다.')'가 나오면 answer를 1 감소시킨다.만약 answer가 음수로 내려간다면, 닫는 괄호..
문제url : https://school.programmers.co.kr/learn/courses/30/lessons/42586각 작업은 100% 완료돼야 배포됨앞 작업이 끝나야 뒤 작업도 함께 배포 가능매일 일정 속도로 개발됨하루가 끝나는 시점에 배포함배포 단위마다 몇 개의 기능이 포함되는지 반환해야 함풀이 전략각 작업이 완료되기까지 며칠 걸리는지 계산함앞에서부터 순차적으로 비교하며 배포 단위 묶음 생성기준일보다 빨리 끝나면 함께 배포기준일보다 늦으면 새 배포 묶음 시작코드import mathdef solution(progresses, speeds): days = [math.ceil((100 - p) / s) for p, s in zip(progresses, speeds)] answer = ..
문제 설명- url : https://school.programmers.co.kr/learn/courses/30/lessons/12906배열 arr에서 연속적으로 같은 숫자가 반복되는 경우, 하나만 남기고 모두 제거해야 한다. 숫자의 등장 순서는 유지해야 하며, 단순한 중복 제거가 아니다.예시arr = [1, 1, 3, 3, 0, 1, 1] # 결과: [1, 3, 0, 1]arr = [4, 4, 4, 3, 3] # 결과: [4, 3]풀이 코드def solution(arr): if not arr: return [] pre = arr[0] answer = [pre] for it in arr[1:]: if it != pre: an..
- url : https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스의 '게임 맵 최단거리' 문제는 전형적인 최단 경로 탐색 문제이다.이 문제는 2차원 격자 맵 위에서 캐릭터가 상대 진영까지 도달할 수 있는 최단 경로의 칸 수를 구하는 것이 목표이다.맵의 상태는 1(길)과 0(벽)로 이루어져 있으며, 캐릭터는 상하좌우 방향으로만 이동할 수 있다.문제 개요맵은 n x m 크기의 2차원 리스트 형태로 주어진다.캐릭터는 (0, 0)에서 시작해 (n-1, m-1)까지 도달해야 한다.벽(0)은 통과할 수 없고, 길(1)만 통과할 수 있다.도달할 수 없다면 -1을 반환해야 한다.예시 설명maps = [ [1, 0, 1, 1, 1], [1, 0..
문제 요약numbers: 길이가 2 이상 20 이하인 양의 정수 배열target: 만들고자 하는 정수 (1~1000)각 숫자마다 +, - 연산을 선택해서 합을 만들 수 있는 경우의 수를 구하라 DFS 풀이 전략DFS로 다음 두 가지를 매 순간 재귀적으로 선택한다:+ numbers[i]- numbers[i]def solution(numbers, target): def dfs(n, i): # 누적합 n, 현재 인덱스 i if i == len(numbers): # 모든 수를 다 썼다면 return int(n == target) # 목표값이면 1, 아니면 0 return dfs(n + numbers[i], i + 1) + dfs(n - numbers[i],..