PS/백준86
-
1806 - 부분합
문제https://www.acmicpc.net/problem/1806느낀점응용 투포인터 문제, 조건 비교에서 등호를 넣으니 풀렸고 안 넣으니 풀리지 않았는데, 그 엣지케이스를 정확하게 모르겠음.. 어쨌든 등호도 신경 써야할 것이다~~풀이#include #include using namespace std;int main{ int N, S; cin >> N >> S; vector arrN; for inti=0;i>arr[i];if(arr[i]==S { cout = N || right >= N) { break; } if (sum
2025.02.23 -
1253 - 좋다
문제https://www.acmicpc.net/problem/1253느낀점응용 투포인터 문제, 문제의 조건을 잘 생각해서 엣지 케이스를 생각해보자. 그것도 연습이다~~풀이#include #include #include using namespace std;int main{ int N; cin >> N; if Narr(N; for int i = 0; i > arr[i]; } sort(arr.begin(, arr.end); int good = 0; for inti=0;itemp=arr;temp.erase(temp.begin( + i); int start = 0, end = temp.size - 1; ..
2025.02.22 -
18114 - 블랙 프라이데이
문제https://www.acmicpc.net/problem/18114느낀점응용 투 포인터 문제, 딱 맞는 값을 찾는다는 의미에서 이분탐색으로도 생각 가능!, 정렬해야된다는 것을 빼먹어서 반례 찾는데 어려웠음풀이#include #include #include using namespace std;int main{ int N, C; cin >> N >> C; vector arrN; for int i = 0; i > arr[i]; } sort(arr.begin(, arr.end); if N==1 { if arr[0]==C { cout C) { right--; ..
2025.02.19 -
17609 - 회문
문제https://www.acmicpc.net/problem/17609느낀점단순한 투 포인터 문제인 줄 알았는데, 신경 써야할 엣지 케이스가 많았다. 왼쪽 방향이나 오른쪽 방향으로 전진했을 때, 틀린 경우 원래 상태로 되돌아가도록 해야했었다. 그를 위해선 팰린 드롬을 검사하는 로직과 움직이는 로직을 분리했어야했는데, 초반에 그러지 못해 틀렸다. 팰린 드롬을 검사하는 로직과 포인터를 움직이는 로직을 분리하여 문제를 해결하였음풀이#include #include #include #include using namespace std;int isPstrings,intleft,intright,intlimit{ if (limit > T; for (int i = 0; i 그냥 단순 재귀로 풀..
2025.02.18 -
14921 - 용액 합성하기
문제https://www.acmicpc.net/problem/14921느낀점응용 투 포인터 문제, 결과 값을 어떻게 처리할 지 고민을 좀 했다.풀이#include #include #include using namespace std;#define pii pairint main{ int N; cin >> N; vector arrN; for (int i = 0; i > arr[i]; } int left = 0, right = N - 1; vector answerList; while (left
2025.02.18 -
9024 - 두 수의 합
문제https://www.acmicpc.net/problem/9024느낀점투 포인터 알고리즘 자체는 어렵지 않았지만, 많은 수의 입력이 들어올 때, 동기화 해주어야했다. 이런 부분이 백준 문제가 짜증나는 듯..풀이#include #include #include using namespace std;int main{ int t; cin >> t; std::ios::sync_with_stdiofalse; for inti=0;i>n>>K;vectorarr(n; for int k = 0; k > arr[k]; } sort(arr.begin(, arr.end); int left = 0, right..
2025.02.18