일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
목록programmers (21)
기록
문제 설명- 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],..
문제 설명- url : https://school.programmers.co.kr/learn/courses/30/lessons/43162네트워크란 컴퓨터들 간에 정보 교환이 가능한 연결 상태를 의미한다.예를 들어, 컴퓨터 A와 B가 연결되어 있고, B와 C도 연결되어 있다면 A와 C는 간접적으로 연결되어 있다고 본다.이러한 경우 세 컴퓨터는 하나의 네트워크에 속한다고 판단한다.입력 및 목표n: 컴퓨터의 수 (1 ≤ n ≤ 200)computers: n x n 크기의 2차원 배열로, computers[i][j] = 1이면 i번과 j번 컴퓨터가 연결되어 있음을 의미한다.computers[i][i] = 1은 항상 성립한다.목표는 전체 컴퓨터를 연결 관계에 따라 그룹화하고, 총 네트워크의 개수를 구하는 것이다...
- url : https://school.programmers.co.kr/learn/courses/30/lessons/43163 주어진 단어 집합을 이용하여 begin 단어를 target 단어로 변환할 수 있는 최소 단계 수를 구하는 문제이다. 이때, 단어를 변환하는 규칙은 다음과 같다:한 번에 한 글자만 바꿀 수 있다.바꾼 결과는 반드시 words 리스트에 존재해야 한다.예를 들어 "hit" → "hot" → "dot" → "dog" → "cog"처럼 4단계에 걸쳐 변환할 수 있다면, 4를 반환한다. 단, 변환이 불가능한 경우에는 0을 반환해야 한다.문제 조건 요약모든 단어는 길이가 동일하며, 알파벳 소문자로만 구성된다.words 리스트는 중복이 없으며, 길이는 최대 50이다.변환 과정에서 항상 wor..
-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..