분류 전체보기 275

[리트코드/leetcode/python] 1235. Maximum Profit in Job Scheduling

오늘은 스케줄링과 관련한 문제를 가져왔습니다. 스케줄링과 관련한 문제는 시간관리와 이익 최대화라는 중요한 개념을 반영하고 있어서, 효율적인 알고리즘을 설계하는 능력을 시험하는 데 아주 적합한 문제입니다. 저는 이 문제를 봤을 때, 백준의 '강의실배정' 문제가 생각났습니다. 문제 푸는 방식은 다르긴 하더라도, 이러한 시간 스케줄링 문제에는 항상 'heapq' 를 사용해서 접근하는 듯 했습니다. 해당 문제는 여러 개의 작업이 주어지고, 각 작업은 '시작시간', '종료시간' , '이익' 리스트로 구성됩니다. 목표는 겹치지 않는 작업들을 선택하여 얻을 수 있는 최대 수익을 계산하는 것 입니다. 즉, 이 문제의 핵심은 모든 가능한 작업 조합 중에서 최적의 조합을 찾는 것이죠. 단순한 브루트포스 알고리즘으로 풀기에..

[데이터베이스] 6장 - SQL 로 데이터 조회하기! SubQuery, IN, EXISTS, ANY, ALL

✅ SubQuery statement 는 아래와 같다. - ID가 14인 임직원보다 생일이 빠른 임직원의 ID, 이름, 생일을 알고 싶다. : 여기서 임직원의 ID 와 이름과 생일을 알고 싶다고 했으니까, employee 테이블이 필요한 건 확실해 보인다. : 그럼, 우선 ID 가 14인 직원을 뽑아낸 뒤, 그 직원의 생일을 알아내고, 다시 조건에 그 생일보다 빠른 직원들을 찾으면 될 것 같다. : 어떻게 하면 좋을까? 먼저, 현재 EMPLOYEE 테이블은 아래와 같다. 그럼, 먼저 ID 가 14인 직원의 생일(birth_date)을 뽑아내보면, 아래와 같다. SELECT birth_date FROM EMPLOYEE WHERE id = 14; ID가 14인 직원의 생일이 '1992-08-04' 라는 ..

🎮 [테크레터 2편] 인덱스 Index ?

인덱스라는 말 들어보셨나요? 덱스에 빠져버리고 싶은 마음... 이것이 인덱스? 아닙니다. 오늘 설명드릴 인덱스(Index)는 데이테베이스에서 자주 접할 수 있는 개념입니다! Index 란 말 어디서 들어보셨죠? 인덱스는 책 맨 뒷 편에서 볼 수 있거나 찾아보기 란에서 종종 볼 수 있습니다. 책에서 이런 페이지를 제공하는 이유는 책을 다 읽지 않고도 원하는 정보만 빠르게 찾아서 해당 위치만 읽을 수 있도록 하기 위함입니다. 데이터베이스에서의 인덱스도 마찬가지입니다. 데이터베이스의 인덱스는 검색 속도를 향상시키기 위한 일종의 자료구조입니다. 강아지 정보가 있는 테이블에서 species(종)이 '웰시코기'인 값을 찾는다고 해봅시다. 일반적인 경우에 전체 데이터를 조회하면서 species(종)이 '웰시코기'인 ..

[리트코드/leetcode/python] 2870. Minimum Number of Operations to Make Array Empty

오늘은 어렵지 않습니다만, 삽질할 가능성이 있는 문제에 대해 다뤄보겠습니다. 이 문제는 알고리즘 복잡도와 효율적인 자료구조 사용에 대한 이해를 시험하는 좋은 연습이 될 것입니다. 해당 문제에서는 주어진 배열 nums 를 비우기 위해 필요한 최소 작업 횟수를 찾는 것입니다. 각 작업에서 nums 내의 똑같은 숫자를 제거할 수 있는데, (2개를 삭제하든지 3개를 삭제하든지) 둘 중 하나의 operation(연산)을 수행하면 서 nums 의 원소들을 제거하는 원리입니다. 최종적으로 nums 가 비워질 때까지 연산을 계속해서 하되, 최소의 연산으로 nums 를 비워야 하고, 이 때 이 최소의 연산 횟수를 반환하는 문제입니다. 제가 처음 접근한 방식은 각 숫자의 빈도수를 계산하여 동적 프로그래밍(DP)를 사용하는..

[데이터베이스] 5장 - SQL 로 데이터 조회하기! SELECT 를 활용해서 데이터를 읽어오는 기본적인 문법과 관련 키워드들

✅ SELECT 로 데이터 조회하기 SELECT statement 는 아래와 같다. - ID 가 9인 임직원의 이름과 직군을 알고 싶다. : 현재 Employee 테이블은 아래와 같다. SELECT name, position FROM employee WHERE id = 9; 여기서 SELECT 뒤에 오는 COLUMN(속성,열) 들을 projection attributes 라고 한다. 즉, 내가 관심있는 속성만 투영해서 가지고 온다는 의미이다. 즉, 우리가 원하는 컬럼인 name 과 position 에 해당하는 값들만 뽑아서 가져온다. 그리고, WHERE 이하를 selection condition 이라고 하는데, 이는 행을 결정해 준다고 생각하면 된다. (여기서는 id=9인 행) 다시말해, 이 projec..

반응형