일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 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
목록2025/05/25 (6)
기록
-url : https://school.programmers.co.kr/learn/courses/30/lessons/42748이 문제는 주어진 배열에서 특정 구간을 자르고 정렬한 후, k번째 값을 추출하는 간단한 정렬 응용 문제이다.문제 정의주어진 정수 배열 array와 여러 개의 [i, j, k]로 구성된 명령어 배열 commands가 주어진다. 각 명령어에 대해 다음과 같은 연산을 수행한 결과를 리스트에 담아 반환한다.배열 array의 i번째부터 j번째까지 자른다.자른 배열을 정렬한다.정렬된 배열에서 k번째 수를 추출한다.인덱스는 1부터 시작하므로 슬라이싱 시 조정이 필요하다.풀이 코드def solution(array, commands): return [sorted(array[i-1:j])[k-..
url : https://school.programmers.co.kr/learn/courses/30/lessons/42746"가장 큰 수 만들기" 문제는 자주 등장하는 정렬 응용 문제이며, 문제의 겉모습은 간단하지만 내부에 숨겨진 비교 로직을 정확히 이해하는 것이 핵심이다.문제 정의0 또는 양의 정수가 담긴 배열 numbers가 주어졌을 때, 해당 수들을 조합하여 만들 수 있는 가장 큰 수를 문자열 형태로 반환하라.예시:numbers = [6, 10, 2]# 만들 수 있는 조합 중 가장 큰 수: 6210 해결 아이디어일반적인 정렬로는 해결할 수 없다. 왜냐하면, 단순히 수의 크기만 비교할 경우 [30, 3]과 같은 경우 30 > 3이므로 303이 만들어지지만, 실제로는 330이 더 크기 때문이다.따라서..
- url : https://school.programmers.co.kr/learn/courses/30/lessons/42747H-Index는 과학자가 발표한 논문들 중, h번 이상 인용된 논문이 h편 이상일 때 가능한 h의 최댓값을 의미한다.예를 들어 [3, 0, 6, 1, 5]라는 인용 수가 주어졌을 때,3번 이상 인용된 논문은 3편이므로 조건을 만족하고, H-Index는 3이 된다.1. 완전탐색 풀이모든 가능한 h에 대해 조건을 검사한다.각 h마다 h 이상 인용된 논문 수(ucnt), h 이하 인용된 논문 수(dcnt)를 계산하고,ucnt ≥ h and dcnt ≤ h를 만족하는 h 중 최댓값을 반환한다.def solution(citations): citations.sort(reverse=Tr..
- url : https://school.programmers.co.kr/learn/courses/30/lessons/42627 디스크 컨트롤러 문제는 우선순위 큐(Heap)를 활용한 전형적인 스케줄링 문제다.각 작업은 요청 시각과 소요 시간을 가지고 있으며, 디스크는 한 번에 하나의 작업만 수행할 수 있다.이 문제에서 디스크 컨트롤러는 다음과 같은 우선순위를 가진다:소요 시간이 짧은 작업이 우선소요 시간이 같다면 요청 시각이 빠른 작업이 우선둘 다 같다면 작업 번호가 낮은 작업이 우선문제 요약jobs[i] = [요청 시각, 소요 시간]각 작업의 반환 시간 = 완료 시각 - 요청 시각모든 작업의 평균 반환 시간의 정수 부분을 구하는 것이 목표다.예시jobs = [[0, 3], [1, 9], [3, 5]]..
- url : https://school.programmers.co.kr/learn/courses/30/lessons/42628프로그래머스의 이중 우선순위 큐 문제는 "최댓값과 최솟값을 동시에 삭제하고 추적할 수 있는 큐"를 구현하는 문제다.기본적인 우선순위 큐를 넘어서 두 방향의 삭제가 모두 가능한 구조이기 때문에,단순한 heap 하나로는 구현할 수 없으며, 두 개의 힙을 사용한 동기화 처리가 필요하다.문제 요약다음과 같은 연산이 주어진다:"I num": 정수 num을 큐에 삽입"D 1": 현재 큐에서 최댓값 삭제"D -1": 현재 큐에서 최솟값 삭제모든 연산을 처리한 뒤:큐가 비어 있다면 [0, 0] 반환아니라면 [최댓값, 최솟값]을 반환핵심 아이디어1. 두 개의 힙 사용최소값 추출을 위한 min-h..
문제 조건 요약url : https://school.programmers.co.kr/learn/courses/30/lessons/42626섞는 공식:새로운 음식의 스코빌 지수 = 가장 맵지 않은 음식 + (두 번째로 맵지 않은 음식 × 2)음식의 스코빌 지수가 K 이상이 되면 종료한다.만들 수 없는 경우는 -1을 반환한다.heappop()은 빈 리스트에 대해 실행하면 IndexError가 발생하므로 주의가 필요하다.핵심 아이디어가장 작은 값을 빠르게 꺼내야 하므로 **최소 힙(min-heap)**을 사용한다.heapq는 리스트를 힙 구조로 정렬할 수 있는 표준 라이브러리이다.heapq.heapify(scoville)를 통해 입력 리스트를 최소 힙으로 변환한다.루프마다 heappop()으로 가장 작은 두 ..