이세개발
article thumbnail
06 다이나믹 프로그래밍
Algorithm/이.코.테 2023. 6. 3. 15:51

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 다이나믹 프로그래밍 다이나믹 프로그래밍(Dynamic Programming)은 문제를 여러 하위 문제(subproblem)로 나누고, 각 하위 문제의 해결 방법을 저장하며 문제를 푸는 기법입니다. 중복되는 하위 문제들을 다시 계산하지 않고 이전에 계산한 결과를 재활용하여 효율적으로 문제를 해결할 수 있습니다. 연습문제 ㅇ

article thumbnail
05 범위를 반씩 좁혀가는 탐색
Algorithm/이.코.테 2023. 6. 3. 15:51

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 이진탐색 이진 탐색(Binary Search)은 정렬된 배열에서 특정한 값을 찾는 탐색 알고리즘입니다. 배열의 중간에 있는 원소와 찾고자 하는 값을 비교하여 탐색 범위를 반으로 줄여가며 값을 찾아나갑니다. 이진 탐색은 배열이 정렬되어 있어야만 사용할 수 있습니다. 연습문제 ㅇ

article thumbnail
04 기준에 따라 데이터를 정렬
Algorithm/이.코.테 2023. 6. 3. 15:51

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 정렬 데이터를 정렬하는 데는 다양한 기준과 알고리즘이 사용됩니다. 데이터를 기준에 따라 정렬하는 일반적인 알고리즘 중 몇 가지를 소개하겠습니다: 버블 정렬 (Bubble Sort): 인접한 두 원소를 비교하고 필요한 경우 위치를 교환하여 정렬하는 알고리즘입니다. 가장 큰 (또는 작은) 원소가 맨 뒤로 이동하는 과정을 반복하면서 정렬됩니다. 삽입 정렬 (Insertion Sort): 배열을 정렬된 부분과 정렬되지 않은 부분으로 나누고, 정렬..

article thumbnail
03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS
Algorithm/이.코.테 2023. 6. 3. 15:50

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 DFS/BFS DFS(Depth-First Search)와 BFS(Breadth-First Search)는 그래프 탐색을 위해 사용되는 두 가지 기본적인 알고리즘입니다. 각각의 알고리즘은 다른 방식으로 그래프를 탐색하며, 서로 다른 상황에 적합한 장단점을 가지고 있습니다. DFS는 깊이를 우선으로 그래프를 탐색하는 알고리즘입니다. 한 노드에서 시작하여 최대한 깊숙히 들어가며 탐색하다가 더 이상 진행할 수 없을 때, 이전 노드로 돌아가서 다..

article thumbnail
02 아이디어를 코드로 바꾸는 구현
Algorithm/이.코.테 2023. 6. 3. 15:50

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 구현 구현하려는 알고리즘에 대해 충분히 이해합니다. 알고리즘의 목적과 요구사항, 입력 및 출력 형식 등을 명확히 이해해야 합니다. 알고리즘 설계: 이제 알고리즘을 구체화해야 합니다. 문제를 해결하기 위한 세부적인 단계와 로직을 설계합니다. 문제 [02_01 [연습문제] 상하좌우 01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05..

01_08 [기출문제] 만들 수 없는 금액
Algorithm/이.코.테문제 2023. 6. 3. 15:50

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 [문제] 동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어, N=5이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리 (화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로, N=3이고, 각 동전이 각각 3원, 5원, 7원짜리 (화폐 단위)..

article thumbnail
01 당장 좋은 것만 선택하는 그리디
Algorithm/이.코.테 2023. 6. 3. 15:50

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 그리디 그리디 알고리즘은 매 순간 최적인 방법을 선택하는 알고리즘입니다. 이때 선택한 방법이 전체적인 최적해를 보장하지 않을 수 있습니다. 하지만 많은 경우 그리디 알고리즘이 최적해에 근접한 값을 찾아주기 때문에 많이 사용됩니다. 예를 들어, 동전 거스름돈 문제를 생각해보면, 그리디 알고리즘은 가장 큰 단위의 동전부터 선택하여 거스름돈을 만들 수 있는 최소한의 동전 수를 선택합니다. 이때, 그리디 알고리즘은 항상 최적해를 보장하는 것은 아..

01_07 [기출문제] 문자열 뒤집기
Algorithm/이.코.테문제 2023. 6. 3. 15:46

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 문제 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. 예를 들어 S=0001100 일 때, 전체를 뒤집으면 1110011이 된다. 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서 2번 만에 모두 같..

01_06 [기출문제] 곱하기 혹은 더하기
Algorithm/이.코.테문제 2023. 6. 3. 15:41

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 [문제] 각 자리가 숫자(0부터 9)로만 이루어진 문자열을 사용자로부터 입력받아, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 곱하기(x) 혹은 더하기(+) 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요. 단, + 보다 x 를 먼저 계산하는 일반적인 방식과 달리 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정합니다. 예를 들어 02984라는 문자열로 만들 수 있는 가장 큰 수는 (..

01_05 [기출문제] 모험가 길드
Algorithm/이.코.테문제 2023. 6. 3. 15:29

01 당장 좋은 것만 선택하는 그리디 02 아이디어를 코드로 바꾸는 구현 03 꼭 필요한 자료구조 탐색 알고리즘 DFS/BFS 04 기준에 따라 데이터를 정렬 05 범위를 반씩 좁혀가는 탐색 06 다이나믹 프로그래밍 07 가장 빠른 길 찾기 08 다양한 그래프 알고리즘 [문제] 한 마을에 모험가가 N명 있습니다. 모험가 길드에서는 N명의 모험가를 대상으로 '공포도'를 측정했는데, '공포도'가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서 제대로 대처할 능력이 떨어집니다. 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했습니다. 동빈이는 최대 몇 개의 모험가 그룹을 만들 수 있는지 궁금합니다...