AtCoder Beginner Contest 386 문제 풀이

ABC386 문제 분석 및 풀이 A - Full House 2 주어진 네 개의 정수 A, B, C, D에 대해 추가로 하나의 정수 E를 선택하여 3+2 패턴을 만들 수 있는지 판단하는 문제입니다. 가능한 조합은 다음과 같습니다: A = B, C = D, 그리고 B ≠ C인 경우 A = B = C, 그리고 C ≠ D인 경우 정렬 후 비교 로직을 통해 결과를 도출합니다. 아래는 구현 코드입니다: // Problem: A - Full ...

8월 8일 11:53에 게시됨

AGC007 문제 풀이

A - Shik and Stone 시작점 \((1, 1)\)에서 경로를 시뮬레이션하며 이동하면 된다. #include <bits/stdc++.h> using namespace std; const int MAX_N = 15; string grid[MAX_N]; bool visited[MAX_N][MAX_N]; int main() { int rows, cols; cin >> rows >> cols; string padding(cols + 2, '.'); grid[0] = grid[rows + 1] = pad ...

8월 6일 23:41에 게시됨

ABC356 대회 문제 해설 및 풀이 코드

A 주어진 범위 1부터 n까지의 수열에서 l부터 r까지의 부분만 뒤집어 출력하는 문제다. 즉, 1부터 l-1까지는 순서대로, l부터 r까지는 역순으로, r+1부터 n까지는 다시 순서대로 출력하면 된다. #include <bits/stdc++.h> using namespace std; int n, L, R; int main() { cin >> n >> L >> R; for (int i = 1; i < L; i++) cout & ...

7월 19일 20:14에 게시됨

AtCoder ABC393 풀이: A~F번 문제 해석

A - Poisonous Oyster 문제 요약 두 사람 A, B가 4가지 음식 중 일부를 먹는다. A는 1, 2번을, B는 1, 3번을 먹는다. 각자의 상태(fine/sick)가 주어질 때, 어떤 음식이 독이 있는지 판별하라. 풀이 조건에 따라 직접 분기하면 된다. 코드 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr) ...

7월 5일 02:26에 게시됨

AtCoder ABC368 풀이: A~F번 문제 분석

A - Cut 문제 요약 길이 n인 수열에서 마지막 k개 원소를 앞으로 이동시킨 결과를 출력한다. 핵심 아이디어 배열을 회전시키는 기초적인 구현 문제이다. n-k 인덱스부터 끝까지의 원소를 먼저 출력한 뒤, 나머지 원소를 순서대로 출력하면 된다. 구현 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nu ...

6월 30일 23:02에 게시됨

AtCoder ABC321 풀이 노트

A - 321-like Checker (난이도 22) 주어진 숫자의 각 자리를 순차적으로 확인하여 이전 자리보다 현재 자리가 항상 작은지 검사합니다. void solve() { int n; cin >> n; int prev = -1; while (n > 0) { int cur = n % 10; if (cur <= prev) { cout << "No" << endl; return; } ...

6월 30일 17:51에 게시됨

하이쿠 조건을 만족하는 구간 존재 여부 판별 알고리즘

O(n log n) 이분 탐색 기법 누적 합 배열을 활용하여 각 시작 인덱스별로 X, Y, Z 합 구간의 종료 지점을 전처리합니다. 이진 탐색을 통해 정확히 X, Y, Z에 해당하는 부분 합의 끝 위치를 계산한 후, 연속된 세 구간이 조건을 만족하는지 O(n) 시간에 검증합니다. #include <iostream> #include <vector> #include <climits> using namespace std; ...

6월 29일 02:27에 게시됨

ABC362 문제 해설

A 문제 문제는 매우 간단합니다. 세 정수 r, g, b와 문자열 c가 주어집니다. c가 "Red"이면 g와 b 중 최솟값을, "Blue"이면 r와 g 중 최솟값을, 그 외의 경우 r와 b 중 최솟값을 출력하면 됩니다. 코드 보기 #include<bits/stdc++.h> using namespace std; int main(){ int red, green, blue; string color; cin >> red > ...

6월 19일 01:43에 게시됨

AtCoder Beginner Contest 357 문제 분석 및 풀이

A - 손 소독하기 N명의 외계인이 순차적으로 손을 소독하려고 합니다. 각 외계인은 H_i개의 손을 가지고 있으며, 전체를 소독해야 합니다. 소독제는 총 M회 사용할 수 있습니다. 한 외계인이 소독을 할 때 필요한 양만큼만 사용하며, 부족하면 남은 양만 소모합니다. 모든 손을 소독한 외계인의 수를 구하세요. 단순히 앞에서부터 순회하면서 소독제 잔량을 갱신하고, 소진 ...

6월 13일 19:05에 게시됨

ABC363 문제 풀이

A - 값의 범위 주어진 값 r이 어느 범위에 속하는지 확인하고, 그 범위의 상한에서 r을 뺀 값을 출력하면 된다. 100 미만이면 100-r, 200 미만이면 200-r, 300 미만이면 300-r을 출력한다. 코드 확인하기 #include<bits/stdc++.h> using namespace std; int main() { int r; cin >> r; if(r < 100) { cout << 100 - r; ...

6월 13일 16:20에 게시됨