DP

C++/C++ 알고리즘

백준 15624번 피보나치 수 7 C++ 구현해보기

#include #include #include #include #include #include #include #include #include #include #include #include // 복잡도 O(str1Len + str2Len) std::string AddBigNum(std::string str1, std::string str2) { int32_t str1Len = str1.length(); int32_t str2Len = str2.length(); if (str1Len > str2Len) { std::swap(str1, str2); std::swap(str1Len, str2Len); } std::reverse(str1.begin(), str1.end()); std::reverse(str2..

C++/C++ 알고리즘

백준 14501번 퇴사 C++ 구현해보기

``` 백준 14501번 퇴사 C++ 구현해보기 ``` 이번 글을 통해 배워갈 내용 백준 14501번 풀이 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 백준 14501번 퇴사는 난이도 실버 등급의 문제로서 상담사로 영업을 하는 직원 B가 퇴사를 할 경우 퇴사 전 이익을 최대화하기 위한 업무 배정을 정하는 문제이다. 입력은 첫줄에 날짜의 개수 N이 주어지고 주어지는 날짜마다 업무가 완수되는데 걸리는 날짜 업무를 완수함으로 받는 보상이 주어진다. 예를 들어 3 1 3 1 1 1 1 이 입력으로 주어질 경우 첫째 날 받은 업무가 3의 보상을 주기 때문에 3을 더하고 다음날 받은 업무..

C++/C++ 알고리즘

백준 2718번 4 X N 타일 채우기 C++ 구현해보기

``` 백준 2718번 4 X N 타일 채우기 C++ 구현해보기 ``` 이번 글을 통해 배워갈 내용 백준 2718번 풀이 간단한 클래스 및 배열 연습 https://www.acmicpc.net/problem/2718 2718번: 타일 채우기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 1,000보다 작거나 같은 자연수이다. 각 테스트 케이스는 정수 하나로 이루어져 있다. 이 정수는 문제에서 설명한 타일의 너비 N이다. N은 자연수 www.acmicpc.net 백준 2718번 타일채우기는 난이도 골드 등급의 문제로서 4 x N 크기의 타일을 2 x 1 혹은 1 x 2 타일로 채우는 경우의 수를 테스트 케이스 만큼 구하는 문제이다. N의 범위는 결과값이 int의 최대값미만인 경우까지이다. 30분 정..

C++/C++ 알고리즘

백준 11727번 2xn 타일링2 C++ 구현해보기

``` 백준 11727번 2xn 타일링2 C++ 구현해보기 ``` 이번 글을 통해 배워갈 내용 백준 11727번 풀이 간단한 DP 연습 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 백준 11727번호 2xn타일링은 난이도 쉬움 등급의 문제로서 2 x n 크기의 직사각형을 1 x 2, 2 x 1, 2 x 2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하는 문제입니다. 이문제는 10초안에 풀 수 있었는데 이유는 바로 타일채우기 11726번의 해답에 한가지 경우에 수만 ..

C++/C++ 알고리즘

백준 11726번 2xn 타일링 C++ 구현해보기

``` 백준 11726번 2xn 타일링 C++ 구현해보기 ``` 이번 글을 통해 배워갈 내용 백준 11726번 풀이 간단한 DP 연습 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 백준 11726번호 2xn타일링은 난이도 쉬움 등급의 문제로서 2 x n 크기의 직사각형을 1 x 2, 2 x 1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하는 문제입니다. 이문제는 3분안에 풀 수 있었는데 이유는 바로 타일채우기 14852번 문제와 매우 유사해서 입력값만 바꿔서..

C++/C++ 알고리즘

백준 14852번 타일채우기3 C++ 구현해보기

``` 백준 14852번 타일채우기3 C++ 구현해보기 ``` 이번 글을 통해 배워갈 내용 백준 14852 번 풀이 간단한 DP 및 std::array 연습 https://www.acmicpc.net/problem/14852 14852번: 타일 채우기 3 첫째 줄에 경우의 수를 1,000,000,007로 나눈 나머지를 출력한다. www.acmicpc.net 백준 14852번 타일채우기는 난이도 중급 등급의 문제로서 2 X N 벽이 주어질때 2 X 1, 1 X 2, 1 X 1 타일로 채우는 경우의 수를 구하는 문제입니다. 벽의 너비 N은 1 이상 1,000,000 이하이며 입력을 받고 첫째 줄에 경우의 수를 1,000,000,007로 나눈 나머지를 출력하면 됩니다. 30분 정도 위에 링크를 방문하셔서 풀어..

C++/C++ 알고리즘

백준 2780번 비밀번호 C++ 구현해보기

``` 백준 2780번 비밀번호 C++ 구현해보기 ``` 이번 글을 통해 배워갈 내용 백준 번호 2780번 풀이 DP 연습 https://www.acmicpc.net/problem/2780 백준 2780번은 난이도 중급 등급의 문제로서 0부터 9 까지 입력가능한 비밀번호 패드가 주어질때 1. 위 그림에서 인접한 번호만 누를수 있음 예) (1이면 2,4) (0이면 7) (5면 2,4,6,8) 2. 가능한 비밀번호 전체 개수를 출력해야 하며 값이 매우 크기 떄문에 1234567로 나눈 나머지를 출력해야 합니다. DP를 배울수 있는 좋은 문제이며 30분 정도 위에 링크를 방문하셔서 풀어보시고 안풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다. 먼저 1002에 10 인 2중 배열을 전역으로 선언해주고 -1..

C++/C++ 알고리즘

백준 2407번 nCr 조합 찾기

이번 글을 통해 배워갈 내용 백준 문제 2407번 풀어보기 조합의 정의 조합을 C++로 풀어보기 (비효율적 방법) 조합을 C++로 풀어보기 (memoization, pascal 삼각형) 자 그럼 백준 문제 nCr 조합구하기를 풀어보겠습니다. 10분 정도 풀어보시고 해답이 안나오신다면 아래 글을 보시고 풀어보시면 됩니다. https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 조합(Combination)의 정의 조합은 서로 다른 n 개의 원소 중에서 순서 상관없이 r 개를 선택하는 경우의 수를 구하는 것입니다. 이는 nCr 로 표현하며 n 은 전체 갯수 r 은 선택된 ..

kimc
'DP' 태그의 글 목록