본문 바로가기

Algorithm4

백준 C++ - 정수삼각형(1932) DP https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 1. n-1 층에서부터 두 방향 중 가장 큰 수를 가진 방향을 선택하여 더합니다. 1) 입력 7 3 8 8 2 0 2) n-1층부터 아래층의 큰 수를 선택하여 더함 7 11 10 8 2 0 3) 배열 (1,1) 위치엔 최댓값이 들어가 있습니다. 18 11 10 8 2 0 #pragma warning(disable:4996) #include #include using namespace std; int arr[501][501]; int n; int main() { scan.. 2023. 4. 23.
백준 C++ - 욕심쟁이 판다(1937) DFS, DP(memoization) Memoization이란 (위키백과) - 컴퓨터 프로그램이 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 메모리에 저장함으로써 반복 수행을 제거하여 실행 속도를 빠르게 하는 기술이다. - 동적 계획법의 핵심이 되는 기술 https://www.acmicpc.net/problem/1937 1937번: 욕심쟁이 판다 n × n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다. 그리고 그 곳의 대나무를 다 먹어 치우면 상, 하, 좌, 우 중 한 곳으로 이동을 한다. 그리고 또 그곳에 www.acmicpc.net 0. 현재 위치의 탐색 횟수가 0으로 저장되어 있으면 1로 바꾸어준다. 1. (1, 1) 위치에서부터 상하좌우로 얼마큼 이동할 수 있는지 탐색하고, 더 이상 이동할.. 2023. 4. 4.
백준 C++, PYTHON - 예산 (이진 탐색) https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 1. left = 1, right = 예산 요청 배열 중 최대값 2. mid = 상한액 역할 3. 상한액이 요청 예산보다 낮거나 같으면 그대로 더하고, 높다면 상한액을 더한다. 4. 총 합이 한정된 예산보다 크면 right = mid - 1, 예산보다 적으면 le = mid + 1 PYTHON import sys n = int(sys.stdin.readline().strip()) cost =.. 2023. 3. 29.
백준 c++ - 치킨 배달 (브루트포스 알고리즘) https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 치킨 집 좌표를 담을 배열, 집 좌표를 담을 배열, m 개수만큼 치킨 집 좌표를 담을 배열 - chicken, house, temp 순 2. chickenLove() 함수를 통해 temp에 치킨 집 좌표를 m개 만큼 삽입 - 백준 연구소 문제도 풀면서 느꼈지만 chickenLove() 함수와 같이 비교 대상을 구하는 것이 중요하다고 느낌 3. distance() 함수를 .. 2023. 3. 29.