본문 바로가기

알고리즘6

백준 온라인 저지 - 19598번 최소 회의실 개수 몇 번 시도해 보니 골드 5가 적당히 머리 쓰기 좋은 것 같아서 이번에도 골드 5를 선택 선택된 문제는 골드5 최소 회의실 개수 [해석] 첫째줄엔 회의의 개수가 그다음 줄부터는 회의의 시작시간과 끝나는 시간이 주어진다. 3 0 40 15 30 5 10 위의 시간이 주어진다면, (0, 40) 회의실 한 개와 (5, 10) (15, 30) 회의실 한 개인 총 2개가 필요하다. 각각 회의실을 따로 써도 되지만, 최소 회의실을 구하는 문제이기 때문에 2가 정답이 된다 이리저리 생각을 해보다가 그림으로 그려보면 좀 더 이해가 쉬울 것 같아서 그림으로 표현해 본다 (1, 4) (3,7) (6,10) (6, 8) (7,12) 위와 같은 회의시간을 시간표 같이 표현한다면 다음과 같이 될 것 같다. 겹이전회의의 종료와 .. 2023. 3. 10.
백준 온라인 저지 - 2170번 선 긋기 지난번에 실버도 쉽게 해결이 되어 이번에는 골드5에서 선택해 보았다. 선택된 문제는 골드5 선 긋기 [해석] 선의 시작과 끝의 좌표가 주어진다. 겹쳐서도 그릴 수가 있다. (1,3) (2,5) 좌표가 제공된다면 1-5까지 선이 그어지므로 선의 길이는 4가 된다. 떨어져서도 그릴 수가 있다. (1,3) (2,5) (7,10) 좌표가 제공된다면 1-5, 7-10 두 선이 되고 선의 총길이는 4 + 3의 7이 된다. 겹치는 선을 파악하기 위해서는 제공되는 모든 데이터를 정렬하여 루프를 돌며 순차적으로 좌표를 확인하는데, 선의 끝좌표가 다음데이터의 시작좌표보다 뒤에 있다면 선이 겹친걸로 판단하고, 다음데이터의 끝좌표와 기존 끝좌표를 비교하여 큰 값을 선의 끝좌표로 업데이트한다. ex> (1,3) (2,5)에서 .. 2023. 2. 24.
Depth-First Search (DFS) - 깊이 우선 탐색 Problem: Given a graph represented as an adjacency list and a starting vertex, implement the depth-first search algorithm to traverse the graph and return the order of visited nodes. 인접 목록과 시작 정점으로 표시된 그래프가 주어지면 깊이 우선 검색 알고리즘을 구현하여 그래프를 순회하고 방문한 노드의 순서를 반환. Example Input: graph = {0: [1, 2], 1: [2], 2: [0, 3], 3: [3]} start_vertex = 2 Example Output: [2, 0, 1, 3] Explanation: Depth-First Search .. 2023. 2. 23.
Binary Search - 이진탐색/이진검색 Problem: Given a sorted list of integers and a target integer, find the index of the target integer in the list using binary search. If the target integer is not in the list, return -1. 정렬된 정수 목록과 대상 정수가 주어지면 이진 검색을 사용하여 목록에서 대상 정수의 인덱스를 찾는다. 대상 정수가 목록에 없으면 -1을 반환. Example Input: lst = [1, 3, 5, 7, 9, 11] target = 7 Example Output: 3 Explanation: Binary search works by repeatedly dividing the li.. 2023. 2. 16.
백준 온라인 저지 - 2839번 설탕 배달 머리 식히려고 브론즈만 하다 보니 알고리즘 없이 코딩이나 산수문제 만 있는 것 같아서 실버에 도전해 보았다. 선택된 문제는 실버 4 설탕 배달 내가 보기엔 실버 4도 그냥 산수 문제 같아 보인다. 우선 선택을 했으니 문제를 천천히 읽어본다. [해석] 주어진 숫자의 설탕무게를 3킬로 봉지와 5킬로 봉지에 나눠 담는데, 이때 발생하는 봉지의 최소개수를 구하는 것이다. 최소의 개수를 구하는 것이므로, 5킬로 봉지로 최대한 담고, 나머지를 3킬로 봉지로 담는 방법을 사용하는 게 좋아 보인다. 나머지가 3킬로로 안 떨어진다면, 5킬로 봉지수를 하나 줄이고 나머지가 3킬로로 나눠 떨어지는지 확인하여 나눠떨어지는 지점이 최소개수라고 판단된다. 더보기 import sys n = int(sys.stdin.readline.. 2023. 2. 13.
알고리즘 - 시작하기 기업의 면접 문화에서 알고리즘 테스트는 후보자의 문제 해결 및 기술 능력을 평가하는 데 사용되는 일반적인 도구다. 이러한 테스트에서 일반적으로 문제를 제시하고 선택한 프로그래밍 언어로 솔루션을 작성하도록 요청을 받는다. 그런 다음 정확성, 효율성 및 가독성을 기준으로 솔루션을 평가한다. 이러한 테스트는 알고리즘 및 데이터 구조에 대한 이해를 작업 코드로 변환하는 응시자의 능력을 측정하고 응시자의 기술적 적성에 대한 객관적인 측정을 제공하는 데 사용된다. 모든 회사가 알고리즘 테스트를 사용하는 것은 아니며 이러한 테스트의 사용은 회사 및 지원하는 역할에 따라 다르다. 알고리즘을 푸는 데는 다음과 같은 몇 가지 이점이 있다. 문제 해결 능력 향상: 알고리즘을 해결하면 문제 해결 능력과 비판적 사고가 날카로워.. 2023. 2. 8.