문제 출처 : https://www.acmicpc.net/problem/1932 풀이과정 DP를 활용하면 간단하게 풀 수 있는 문제이다.맨 왼쪽과 맨 오른쪽을 제외한 곳은 오른쪽, 왼쪽 중 큰 것을 더하여 저장하며, 맨 왼쪽, 오른쪽은 정해진 수를 더해서 저장한다. 소스코드123456789101112131415161718192021222324252627282930#include #include using namespace std; int n,ans;int DP[501][501]; int main(){ cin.sync_with_stdio(false); cin >> n; for (int i = 1; i DP[i][j]; if (j == 1) DP[i][j] = DP[i - 1][j] + DP[i][j]; /..
문제 출처 : https://www.acmicpc.net/problem/2606 풀이과정 처음에 문제를 보고 아 BFS나 DFS를 사용하면 되겠다 라고 생각했는데 밑에 알고리즘 분류에 플로이드-워샬 알고리즘이라고 적힌 것을 보고 플로이드-워샬 알고리즘에 대해 찾아보고 사용해보려고 했는데 너무 어려운 것 같다.그리고 검색해보니 사람들도 주로 BFS, DFS를 이용하여 풀어서 DFS를 이용해서 풀었다.DFS, BFS 에 대한 개념은 머리에 있는데 아직은 구현이 매끄럽게 되지 않는 것 같다. 소스코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #include using nam..
문제 출처 : https://www.acmicpc.net/problem/11655 풀이과정 알파벳을 13칸씩 밀려서 출력하는 문제이다. 아스키코드를 참고하면 쉽게 풀 수 있다.시험기간이라서 쉬운 문제를 풀었다. getline(cin,s)로 한 줄을 입력받아 문자열 처리를 하면 된다. 소스코드1234567891011121314151617181920212223242526272829#include #include std::string s; int main(){ std::getline(std::cin, s); int len = s.length(); for (int i = 0; i = 'A' && s[i] 90) s[i] -= 13; else s[i] += 13; } else if (s[i] >= 'a' && s..