📍 문제 탐색하기이번 문제는 RGB거리의 집들을 칠하는 데 최소 비용을 구하는 문제이다.주어진 규칙에 따라 인접한 집들의 색이 같지 않도록 칠해야 하며, 각 집을 빨강(R), 초록(G), 파랑(B)으로 칠하는 비용이 주어진다.문제 조건집의 수 N (2≤N≤1,000)각 집의 칠하는 비용은 1,000 이하의 자연수로 주어짐.규칙:1번 집의 색은 2번 집과 같지 않아야 한다.i번 집의 색은 (i−1)(번 및 (i+1)번 집과 같지 않아야 한다.N번 집의 색은 (N−1)번 집과 같지 않아야 한다.입출력입력:첫 줄에 집의 수 N이후 N개의 줄에 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 순서대로 주어짐.출력:모든 집을 칠하는 데 드는 최소 비용.📍 코드 설계하기입력 처리집의 개수 N을 입력받는다.각 집을..

📍 문제 탐색하기이번 문제는 WOOK이라는 로봇이 탐사 영역에서 최대한 많은 자원을 수집하는 문제이다.WOOK은 (1,1)에서 시작해 (N,M)로 이동하며, 오른쪽과 아래쪽으로만 이동할 수 있다.로봇은 탐사 영역의 각 칸에 자원이 있다면 이를 수집하며, 마지막 칸 (N,M)에 도달했을 때 최대 자원의 개수를 출력해야 한다.문제 조건탐사 영역의 크기는 N×M, 각 칸에는 1(자원 있음) 또는 0(빈 땅)이 표시된다.N,M≤300: 최대 300×300=90,000칸까지 처리 가능하다.시간 복잡도 O(N×M)로 해결 가능!📍 코드 설계하기입력 처리탐사 영역의 크기 N,MN, MN,M과 탐사 영역 데이터를 입력받는다.area[r][c]는 (r,c) 위치의 자원 개수를 나타낸다.DP 점화식 설계DP 정의:dp..

📍 문제 탐색하기이번 문제는 정수를 1, 2, 3의 합으로 나타내는 방법의 수를 계산하는 문제이다. 이를 동적 계획법(DP)을 사용해 효율적으로 해결할 수 있다.문제 조건정수 n(1 ≤ n ≤ 10)을 1, 2, 3의 합으로 나타내는 방법의 수를 구한다.테스트 케이스 개수 T가 주어지고, 각 테스트 케이스에 대해 결과를 출력한다.예를 들어, n = 4라면 결과는 다음과 같습니다:1 + 1 + 1 + 11 + 1 + 21 + 2 + 12 + 1 + 12 + 21 + 33 + 1→ 총 7가지.입력 범위1 ≤ T ≤ 10 (테스트 케이스 개수)1 ≤ n ≤ 10 (계산할 정수)가능한 시간 복잡도최대 n = 10이므로, 동적 계획법(DP)을 사용하면 O(n)으로 해결 가능하다.최대 테스트 케이스가 T = 10..

📍 문제 탐색하기이번 문제인 적록색약 문제는 N×N 크기의 그리드에서 일반인과 적록색약이 각각 보는 색상의 구역 수를 계산하는 문제이다. 이 문제에는 다음과 같은 조건이 있다.같은 색상으로 이루어진 구역을 계산한다.상하좌우로 연결된 칸이 같은 색상이라면 같은 구역으로 간주한다.적록색약인 사람은 R(빨강)과 G(초록)을 같은 색상으로 인식한다.즉, R과 G는 동일한 색상으로 취급된다.B(파랑)는 적록색약 여부와 상관없이 독립적으로 취급된다.입력 범위1 ≤ N ≤ 100그리드의 각 칸은 R(빨강), G(초록), B(파랑) 중 하나로 색칠되어 있다.가능한 시간복잡도최대 N = 100 → 그리드 크기 = 100 × 100 = 10,000BFS를 사용해 모든 칸을 방문하며 구역을 계산 → 시간복잡도 O(N²)...

📍 문제 탐색하기이번 문제인 버섯 농장은 N×N 크기의 나무판에서, 버섯이 자랄 수 있는 칸(0)에 버섯 포자를 심어서 모든 버섯 가능 칸을 덮는 문제이다.하지만 여기엔 두 가지 특별한 조건이 있다한 포자는 심어진 칸을 포함해 최대 K개의 상하좌우로 연결된 칸에 버섯을 자라게 할 수 있음한 칸에 여러 개의 포자를 심을 수 있음만약 x개의 포자를 같은 칸에 겹쳐 심으면, 그 칸을 포함해 최대 x×K개의 연결된 칸에 버섯이 자라게 된다.문제 이해가 제일 어려웠다. 좀 더 설명해보자면단순히 모든 0 칸에 한 개씩 포자를 심는다면 당연히 버섯은 다 자라지만, 포자를 너무 많이 사용하게 된다.더 적은 포자로 전부 덮으려면, 각 0 칸들이 어떻게 연결되어 있는지(상하좌우로 이어진 덩어리)를 구분하여, 한 포자로 ..

📍 문제 탐색하기섬의 개수 문제는 지도 형태로 주어진 땅과 바다의 배열에서 연결된 땅(1)을 찾아 섬의 개수를 세는 문제이다.가로, 세로, 대각선으로 연결된 땅은 같은 섬으로 간주된다.입력 범위지도의 너비 w, 높이 h: 1 ≤ w,h ≤50지도 데이터: 0 (바다), 1 (땅)여러 테스트 케이스가 입력되며, 마지막에 w,h가 0,0이면 종료된다.가능한 시간복잡도각 지도 크기가 최대 50×50=2500각 지점에서 8 방향을 모두 탐색하더라도, 탐색 범위는 여전히 w×h에 비례하다.시간복잡도가 O(w×h)인 DFS나 BFS를 활용하면 효율적으로 해결 가능하다.알고리즘 선택DFS를 사용하여 8 방향(상, 하, 좌, 우, 대각선)을 탐색하며 연결된 섬을 찾는다.이후에 설명하겠지만, DFS는 재귀적으로 탐색하..

📍 문제 탐색하기개구리가 일렬로 놓인 징검다리 사이를 배수 단위로 점프하면서 시작 지점 a에서 목표 지점 b까지 도달하는 최소 점프 횟수를 구하는 문제다.특정 징검다리에 쓰인 숫자를 k라고 하면, k는 그 위치에서 점프할 수 있는 단위를 의미하며, 배수(±k,2k,3k,...)의 형태로만 이동이 가능하다.입력 범위:징검다리 개수 N: 최대 10,000각 징검다리에 쓰인 숫자 k: 최대 10,000a,b: 시작점과 도착점으로 1 ≤ a,b ≤ N가능한 시간복잡도문제를 해결하기 위해 a에서 b까지 탐색해야 한다. O(N): N=10,000: 즉 최대 10,000번의 방문과 연산이 일어난다. 따라서 1억 연산 이하로 충분히 제한 시간 안에 처리가 가능하다.BFS를 이용하여 배수 형태로 이동 가능한 경로만을 ..

1. 문제 발생: 도커 볼륨이 꽉 참Docker로 서버를 운영하다가 볼륨이 가득 차는 문제가 발생했다. 볼륨이 꽉 차면 새 컨테이너를 실행하거나 Docker 관련 작업을 할 수 없게 되기에 빠른 해결이 필요했다.처음에는 이 문제가 Redis의 데이터를 저장하는 볼륨 때문이라고 생각했다. Redis는 데이터를 저장해야 하므로 볼륨을 사용하는데, 혹시 불필요한 볼륨이 계속 생성되고 있는 게 아닐까 의심이 되었다.그러나 원인은 다른 곳에 있었다!2. 원인 발견: 서버 실행 시 익명 볼륨 생성Redis 문제를 확인하던 중, 예상치 못한 곳에서 진짜 원인을 발견했다. 서버 컨테이너 실행 시 사용된 -v /app 옵션이 불필요한 익명 볼륨을 계속 생성하고 있었다.docker run -d --name ${server..
- Total
- Today
- Yesterday
- 스프링 커뮤니티
- 백준
- EnumType.ORDINAL
- 자바
- 북마크
- 커뮤니티
- JPA
- 스프링 북마크
- SQL 레벨업
- 웹MVC
- 파이썬
- 스프링
- elasticsearch
- DP
- 회원탈퇴
- 프론트엔드
- 다이나믹 프로그래밍
- 인텔리제이
- 로그아웃
- 자바 스프링
- 스프링부트
- 로깅
- 준영속
- 웹 MVC
- 지연로딩
- 백준 파이썬
- SQL
- SQLD
- 비영속
- 영속
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |