알고리즘/codeforce(3)
-
[codeforces] Codeforces Round #748 (Div. 3) A, C
1. A - 간단한 수학 문제 - 세개의 숫자중 가장큰것에서 +1 해주면된다 - 이때 가장 큰 수가 유일한 한 값이라면 0을 출력해주는 예외처리만 해주면된다. while (T--) { int maxC; int A[3]; cin >> A[0] >> A[1] >> A[2]; maxC = max(A[0], max(A[1], A[2])); map dic; for (int i = 0; i < 3; i++) { dic[A[i]]++; } int a[3]; for (int i = 0; i < 3; i++) { a[i] = maxC - A[i]; a[i]++; if (dic[maxC] == 1 && a[i] == 1) { a[i]--; } } cout4(a[0], " ", a[1], " "); cout2(a[2], "..
2021.10.14 -
[codeforces] Educational Codeforces Round 115 (Rated for Div. 2) A,B,C
https://codeforces.com/contest/1598 3솔 1. A - 그래프 문제 , 구현문제 - 상하좌우 , 대각선 4방향 총 8 방향으로 움직여 (0,0)에서 끝까지 도달할 수 있는지 판단하는 문제 - 이 문제는 그래프 탐색으로 해결가능하고 - 그냥 3번째 샘플데이터처럼 1이 상하로 연속적일 경우를 찾아 문제를 해결할 수 있다. 2. B - 구현문제, 포함 배제 - 학생들을 두그룹으로 나누는 문제 - 이 문제는 포함 배제의 원리를 응용하여 해결할 수 있다. - 5 일에서 2일 을 고르는 모든 경우의 수를 탐색하여 - A + B - AnB = 학생수 인 요일 두개를 찾아야한다. (단 이때 A와 B가 n/2 보다 크거나 같아야한다.) - AnB를 구하는것이 문제인데 이는 단순하게 아래와 같이..
2021.10.11 -
[codeforces] Codeforces Round #744 (Div. 3)
A. Casimir's String Solitaire - 수학 문제 - 주어진 문자열에서 아래의 두 연산중 하나를 수행한다. 임의의 A 와 B를 제거 임의의 B 와 C를 제거 - 이때 문자열을 ""로 만들 수 있으면 YES , 아니면 NO를 출력하는 문제이다. - 해결방법은 간단하다. - 문자열에서 ABC 각각의 개수를 세고 A + C = B 가 성립하면 ""로 만들 수 있다. 반성 - 주어진 입력의 크기를 보지 못하고 완전탐색으로 모든 경우의 수를 구하여 풀려고 했다. #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(..
2021.09.30