소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드프로그래머스 - 단어 변환 (문제 링크)BFS (너비 우선 탐색)그래프 탐색 문제 설명두 개의 단어 begin, target과 단어의 집합 words가 주어집니다. 이 문제에서는 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾아야 합니다. 변환 과정은 다음과 같은 규칙을 따릅니다한 번에 한 개의 알파벳만 바꿀 수 있습니다.변환된 단어는 words에 포함되어 있어야 합니다.예를 들어, begin이 "hit"이고,..
분류 전체보기
Testcontainers를 이용한 애플리케이션 통합 테스트 환경 구축이 글에서는 Testcontainers를 활용하여 애플리케이션 통합 테스트 시 데이터베이스 환경을 어떻게 구성할 수 있는지에 대해 설명합니다.Testcontainers 공식 문서를 참고하여 현재 버전에 맞게 직접 테스트해보며 작성했습니다. 서론테스트 코드를 작성할 때, Docker를 사용해 테스트용 데이터베이스를 직접 띄우거나 H2 메모리 데이터베이스를 활용할 수 있습니다. 하지만 Docker로 테스트용 DB를 직접 실행하고 종료하는 과정은 번거로울 수 있으며, H2 메모리 DB는 설정이 간편하고 테스트 속도가 빠르지만 운영 환경과 다른 DB를 사용할 때 문제가 발생할 가능성이 있습니다. 이는 테스트에서 문제가 없더라도 실제 운영 환..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드프로그래머스 - 아이템 줍기 (문제 링크)BFS (너비 우선 탐색)그래프 탐색 문제 설명지형에 여러 개의 직사각형이 겹쳐져 있고, 캐릭터가 이 지형의 테두리를 따라 이동하여 아이템을 주우려고 합니다. 직사각형들의 좌표와 캐릭터의 초기 위치, 아이템의 위치가 주어졌을 때, 캐릭터가 아이템을 줍기 위해 이동해야 하는 가장 짧은 거리를 구하는 문제입니다.이 문제에서 직사각형은 겹쳐질 수 있으며, 직사각형 내부는 이동할 수 없는 공간으..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드프로그래머스 - 네트워크 (문제 링크)Union-Find (유니온 파인드) 문제 설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어 있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드LeetCode - Minimum Operations to Make a Subsequence (문제 링크)이진 탐색 (Binary Search)최장 증가 부분 수열 (LIS) 문제 설명주어진 target 배열은 중복되지 않은 정수들로 구성되어 있으며, 다른 배열 arr은 중복된 정수를 가질 수 있습니다. target 배열을 arr의 부분 수열로 만들기 위해 필요한 최소 작업 수를 구하는 문제입니다.하나의 작업은 arr의 임의의 위..
소개알고리즘 스터디를 참여하며 작성하는 TIL입니다.TIL이란? 'Today I Learned'의 약자로, 한국어로 번역하면 '오늘 내가 배운 것'이란 의미입니다.제가 오늘 하루 배운 것 혹은 경험하고 느낀 것들을 기록하고 회고하는 습관을 기르기 위한 글입니다. 문제 & 키워드LeetCode - Maximum Profit in Job Scheduling (문제 링크)동적 프로그래밍 (Dynamic Programming)이진 탐색 (Binary Search) 문제 설명주어진 n개의 작업이 있습니다. 각 작업은 시작 시간 startTime[i], 종료 시간 endTime[i], 그리고 이익 profit[i]을 가지고 있습니다. 이 작업들을 최대한 겹치지 않게 선택하여 얻을 수 있는 최대 이익을 구하는 문제..