목록알고리즘 (508)
어흥
문제 링크: https://codeforces.com/contest/1305/problem/B Problem - B - Codeforces codeforces.com 1. 주의할점 - 첫번째 output의 답으로는 0혹은 1밖에 나오지 않는다 2. 구현 - Stack을 이용 or DoublePointer 이용 #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string str; cin >> str; vector v; int l = 0, r = str.size() - 1; while (l < r) { while (1..
문제 링크: https://codeforces.com/contest/1305/problem/A Problem - A - Codeforces codeforces.com 1. 주의할 점 - 테스트케이스마다 각 vector을 초기화시켜준다 2. 구현 - 2개의 vector를 sort한 이후, 순서대로 더해주면 겹치는 값이 생기지 않는다. #include #include #include using namespace std; int main() { int test, tt, num; cin >> test; for (int t = 0; t > num; vector brace; vector neck; for (int i = 0; i > tt; nec..
문제 링크: https://www.acmicpc.net/problem/2186 2186번: 문자판 첫째 줄에 N(1 ≤ N ≤ 100), M(1 ≤ M ≤ 100), K(1 ≤ K ≤ 5)가 주어진다. 다음 N개의 줄에는 M개의 알파벳 대문자가 주어지는데, 이는 N×M 크기의 문자판을 나타낸다. 다음 줄에는 1자 이상 80자 이하의 영단어가 주어진다. 모든 문자들은 알파벳 대문자이며, 공백 없이 주어진다. www.acmicpc.net 1. 주의할점 - Row와 Col의 범위가 1~100이다 - 시간제한: 2초 결론 : DFS만 사용할 경우 TLE가 날 확률이 크다 -> 메모라이즈 이용 2. 구현 - dp배열 구성: y,x,몇번째 글자로 방문했는지(idx) 용도: 메모라이즈 - arr배열의 원소가 찾고자 ..
문제 링크: https://www.acmicpc.net/problem/10830 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net 1. 주의할 점 - B가 최대 1000억까지 증가할 수 있다(단순 연산만 해도 100초) - 시간 제한: 1초 - 행렬의 원소는 매 계산마다 MOD 1000 한 결과를 보유한다 2. 해결법 - B를 logB만큼 줄여서 1초내에 연산을 끝내도록 한다 3. 함수 기능 - mul 함수: 2차행렬 X 2차행렬을 위한 함수 - pow 함수: v^B 의 결과를 돌려준다 #define MOD 1000 #incl..