[BAEKJOON] 1522번 문자열 교환
·
Algorithm/투포인터
https://www.acmicpc.net/problem/1522 문제조건와 b로만 이루어진 문자열이 주어질 때,  a를 모두 연속으로 만들기 위해서 필요한 교환의 최소 회수문자열은 원형이다.접근방법 사실 투포인터 라기보다는 슬라이딩윈도우 방식의 풀이이다.원형으로 이루어진 문자열이므로, 원형을 직선으로 펼친 배열로 보았을때, 모든 경우의수를 비교해서 최솟값을 찾는 방식으로 접근했다. 물론 주어진 문자열의 길이가 1000이므로, O(n^2)안에 탐색할수 있으므로 사용할수 있는 방법이다. 소스코드#include #define MAX 1001using namespace std;string s;int main() { cin >> s; int n = s.length(); int res = n; int a = 0;..
[BAEKJOON] 1806번 부분합
·
Algorithm/Binary Search
https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 문제조건 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이는? 접근방법 시간제한도 타이트하고, 입력값도 크게 주어지길래, 단순히 for문 두번 돌려서 O(n^2) 으로 시간이 걸리게 된다면 당연히 시간초과가 날 것이라고 생각했고, 문득 저번에 이런 비슷한 문제를 푼 경험이 떠올랐다. 2024.03.21 - [Algorithm/구현, 시뮬레이션..
[BAEKJOON] 2531번 회전초밥
·
Algorithm/투포인터
https://www.acmicpc.net/problem/2531 2531번: 회전 초밥첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤www.acmicpc.net문제조건 k개의 접시 연속해서 먹으면 정액할인 가격1번에 해당할때, 초밥 번호 쿠폰발행, 그 번호 공짜, 번호 없으면 새로 만들어줌손님이 먹을 수있는 초밥종류의 최댓값?가장 많이 먹을 수 있는 경우? 쿠폰발행된 것이 아닌 초밥들을 연속해서 먹는다. 뭔가 투포인터를 이용해서 풀어야만 할 것같았는데, 투포인터를 활용한  '슬라이딩 윈도우' 기법을 활용했다.거창해 보이..
[BAEKJOON] 20922번 겹치는 건 싫어
·
Algorithm/투포인터
https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열www.acmicpc.net문제조건같은 원소 k개 이하최장 연속 부분 수열의 길이처음보는 문제유형이라 많이 당황했다,,dp, LCS 등등 알고리즘을 고민해봤지만, 도저히 풀리는 그림이 나오지 않았다.따라서 투 포인터라는 접근방식이 필요했다. https://khu98.tistory.com/187 [백준OJ] 20922번 겹치는 건 싫어https://www.acmicpc.net/problem/20922 20922번: 겹치는 건..