C7 백준 C++ - 상자넣기 (1965번) DP https://www.acmicpc.net/problem/1965 1965번: 상자넣기 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 www.acmicpc.net 1. 현재 상자보다 크기가 작으면서 담을 수 있는 상자의 개수의 최대값을 구합니다. #pragma warning(disable:4996) #include #include using namespace std; int arr[1001]; int DP[1001] = { 0, }; int n, ans; int main() { int n; scanf("%d", &n); for (int i = 1; i 2023. 4. 29. 백준 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++ - 센서(2212) 탐욕법 https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 1. 집중국이 한 개일 때 최대 수신 거리를 구합니다. 2. 센서 사이의 거리를 구해 temp 배열에 저장합니다. 3. 센서 사이의 거리가 큰 순서대로 정렬합니다. (내림차순) 4. 집중국 - 1만큼 최대 수신 거리에서 센서 사이의 거리를 뺍니다. 5. 끝 #pragma warning(disable:4996) #include #include using namespace s.. 2023. 4. 18. C++ - 아이템 줍기 (BFS) https://school.programmers.co.kr/learn/courses/30/lessons/87694?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀긴 풀었지만 쓸데없는 for문을 한 번 더 돌려 그다지 마음에 들지 않는 풀이법입니다. 1. 입력대로 사각형을 2차원 배열에 그리면 캐릭터가 디귿 모양으로 움직일 수 없으므로 사각형을 두 배로 크게 키워서 그립니다. 1번 과정만 잘 수행하면 그다음부턴 너비 우선 탐색으로 목적지까지 찾아가면 됩니다. #pragma warning(disable:4996) #include #i.. 2023. 4. 9. 백준 C++ - 잃어버린 괄호(1541) 탐욕법 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 1. 부호를 만나면 결괏값을 담을 변수에 더한다. 2. 만약 부호가 음수라면 모든 수를 음수로 더한다 - 괄호를 적절히 사용하므로 빼기 연산 뒤에 괄호를 사용하면 모든 수를 음수로 만들 수 있으므로 음수로 더함 - 1 + 2 - ( 3 + 4 + 5 + 6 ) - (7 + 8 + 9.....) #pragma warning(disable:4996) #include char sic[100]; i.. 2023. 4. 4. 백준 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. 이전 1 2 다음