전체 글(230)
-
1484 - 다이어트
문제https://www.acmicpc.net/problem/1484느낀점골드 이상부터는 바로 어떻게 풀어야겠다는 생각이 들지 않는 경우가 많기 때문에 고민을 좀 해야한다. 다행히도 이 문제는 조건이나 이런 것들이 쉬웠던 듯풀이#include #include #include #include using namespace std;int main(){ int G; cin >> G; int left = 1, right = 1; vector answer; bool finded = false; while (true) { int comp = pow(right, 2) - pow(left, 2); if (comp G) { ..
2025.02.17 -
25916 - 싫은데요
문제https://www.acmicpc.net/problem/25916느낀점풀이는 기본적인 투포인터 문제이지만, 문제의 조건을 잘 읽고 엣지 케이스를 대비해야한다는 것을 다시 한 번 깨달음풀이#include #include using namespace std;int main(){ int N; long long M; cin >> N >> M; vector numList(N); for (int i = 0; i > numList[i]; } int left = 0; long long volumeCount = 0, maxVolume = 0; for (int right = 0; right M) { while (true) ..
2025.02.17 -
20922 - 겹치는 건 싫어
문제https://www.acmicpc.net/problem/20922느낀점기본적인 투 포인터 문제, while문으로도 접근할 수 있고 그냥 for 문으로도 접근할 수 있다. 풀이 후 엣지 케이스를 검토하여 풀이를 보완하는 작업을 먼저 갖자.풀이#include #include using namespace std;int main(){ int N, K; cin >> N >> K; vector numList(N); vector numCount(100001, 0); for (int i = 0; i > numList[i]; } int cnt = 0; int maxLength = 0; int left = 0; for (int right = 0; right K)..
2025.02.17 -
15565 - 귀여운 라이언
문제https://www.acmicpc.net/problem/15565느낀점문제 자체는 기본적인 투 포인터 문제였다. 엣지케이스를 잘 검토해보자풀이#include #include using namespace std;int main(){ int N, K; cin >> N >> K; vector numList(N); for (int i = 0; i > numList[i]; } int start = 0, end = 0; int lion = 0, cnt = 0; int minValue = 10e6; while (true) { if (lion == K) { minValue = min(minValue, cnt); ..
2025.02.17 -
2531 - 회전 초밥
문제https://www.acmicpc.net/problem/2531느낀점투 포인터 기본 문제였다. 슬라이딩 윈도우 타입의 기본 문제 풀이#include #include using namespace std;int countSushiType(vector &count){ int result = 0; for (size_t i = 0; i > N >> d >> k >> c; vector count(d + 1, 0); vector sushi(N); int left = 0, right = left + k - 1; for (int i = 0; i > sushi[i]; if (left
2025.02.15 -
22857 - 가장 긴 짝수 연속한 부분 수열 (small)
문제https://www.acmicpc.net/problem/22857느낀점확실히 투 포인터 문제는 경계를 설정하는 것이 까다롭고, 포인터의 이동을 생각하는 게 어렵다.. 더 연습이 필요할 듯풀이#include #include #include using namespace std;int main(){ int N, K; cin >> N >> K; vector arr(N); for (int i = 0; i > arr[i]; } int start = 0, end = 0; int maxValue = 0; int sInd = 0, eInd = 0; while (true) { if (end >= N) { break; ..
2025.02.14