분류 전체보기 (308) 썸네일형 리스트형 [백준/C++] 2342번: Dance Dance Revolution 문제https://www.acmicpc.net/problem/2342문제 요약DDR(Dance Dance Revolution)은 아래와 같은 모양의 발판 위에서 주어진 스텝에 맞춰 나가는 게임이다. 편의상 중점을 0, 위를 1, 왼쪽을 2, 아래를 3, 오른쪽을 4라고 정한다. 게이머는 두 발을 중앙에 모으고 게임을 시작하면 지시에 따라 왼쪽 또는 오른쪽 발을 움직인다.(두 발이 동시에 움직이지는 않는다.) 두 발이 같은 지점에 있는 것이 허락되지 않는다. 발이 움직이는 위치에 따라서 드는 힘이 다르다. 1. 중앙에 있던 발이 다른 지점으로 움직이면, 2의 힘을 사용한다.2. 다른 지점에서 인접한 지점으로 움직이면, 3의 힘을 사용한다.3. 반대편으로 발을 움직이면, 4의 힘을 사용한다.4. 같은 지점을.. [백준/C++] 2252번: 줄 세우기 문제https://www.acmicpc.net/problem/2252문제 요약N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키가 주어지지 않고, 두 학생의 키를 비교 결과가 M개 주어졌을 때 줄을 세우는 방법을 출력한다. 답이 여러 가지인 경우 아무거나 출력한다.코드#include #include #include #include #include #include using namespace std;int N, M;vector edges[32032];// indegree[i]: i번 노드로 들어오는 간선의 수int indegree[32032];queue q;int main() { cin >> N >> M; // 그래프 입력 while (M--) { // a번 학생이.. [백준/C++] 5582번: 공통 부분 문자열 문제https://www.acmicpc.net/problem/5582문제 요약두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열의 길이를 출력한다. 예시문자열 A = "ABRACADABRA"문자열 B= "ECADADABRBCRDARA" 가장 긴 공통 부분 문자열은 "ADABR"이고, 길이는 5이다.코드#include #include #include #include using namespace std;// dp[i][j]: 문자열 A에서 i번째 문자, 문자열 B에서 j번째 문자에서 끝나는 가장 긴 공통 부분 문자열 길이int dp[4040][4040];string A, B;int res;int main() { cin >> A >> B; for (int i = 1; i .. [백준/C++] 9252번: LCS 2 문제https://www.acmicpc.net/problem/9252문제 요약두 문자열이 주어졌을 때, 모두의 부분 문자열이 되는 문자열 중 가장 긴 것을 찾아 길이와 함께 출력한다.코드#include #include #include #include #include using namespace std;// dp[i][j]: 문자열 A에서 i번째 문자까지, 문자열 B에서 j번째 문자까지 봤을 때 LCS 길이int dp[1010][1010];string A, B;int lcs_length;string res;int main() { cin >> A >> B; // LCS 길이 구하기 for (int i = 1; i 0 && j > 0) { if (A[i - 1] == B[j - .. [백준/C++] 17626번: Four Squares 문제https://www.acmicpc.net/problem/17626문제 요약자연수 n이 주어졌을 때, n을 제곱수 합으로 나타낼 수 있는 최소 개수를 출력한다.코드#include #include #include using namespace std;int n;// dp[i]: i를 제곱수 합으로 나타낼 수 있는 최소 개수int dp[50050];// n을 제곱수 합으로 나타낼 수 있는 최소 개수를 반환하는 함수int dfs(int n) { // 0을 제곱수 합으로 나타낼 수 있는 최소 개수 = 0 if (n == 0) { return 0; } // 이미 dp[i]를 구했었다면, 바로 반환 if (dp[n] != -1) return dp[n]; // 아니라면.. [백준/C++] 15992번: 1, 2, 3 더하기 7 문제https://www.acmicpc.net/problem/15992문제 요약정수 n을 m개의 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.코드#include #include #include #define ll long longusing namespace std;int t;int dp[1010][1010];ll dfs(int n, int m) { // 음수일 경우 0 if (n > t; // 초기 설정 memset(dp, -1, sizeof(dp)); dp[1][1] = 1; dp[2][1] = 1; dp[2][2] = 1; dp[3][1] = 1; dp[3][2] = 2; dp[3][3] = 1; while (t--) { .. 이전 1 ··· 8 9 10 11 12 13 14 ··· 52 다음