알고리즘 스터디
- ➖ 투 포인터 알고리즘
- 백준 2003 수 들의 합2 O
- 백준 1806 부분합 O
- 백준 1644 소수의 연속합 O
- ➖
- 백준 2467 용액 O
- 백준 2473 세 용액 O
- ➖ meet in the middle 알고리즘
- 백준 1208 부분수열의 합 2 O
- 백준 7453 합이 0인 네 정수 O
- ➖ DP
- 백준 17243 Almost-K Increasing Subsequence O
- 백준 17351 3루수는 몰라 O
- 백준 10476 좁은 미술전시관 O
알고리즘 스터디의 백준 문제집을 미리 안풀어둔 탓에 새벽부터 일어나 부랴부랴 하루만에 급하게 풀었다
결국 진이 다 빠져버려서 스터디 코드 리뷰 시간에 성의있게 코드를 설명하지 못했다
스터디에 문제를 풀어가는 것 만큼이나 성의있게 코드 리뷰를 하는 것도 중요하다
앞으론 꼭 미리미리 풀어두고 스터디 전에 코드 로직을 한번씩 훑어보아야겠다
- 두 개의 포인터를 조작하여 부분합을 구할 수 있는 이유는 배열의 값들이 자연수이기 때문이다
-> 자연수이기 때문에 end를 증가시키면 부분합이 증가하고 start를 증가시키면 부분합이 감소하는 것을 보장할 수 있다
-> 음수가 섞여있다면 이를 보장할 수 없으므로 Two Pointers를 사용할 수 없다
- upper_bound: key값을 초과하는 가장 첫 번째 원소의 위치반환
- lower_bound: key값의 위치 반환하고 찾으려 하는 key값이 없으면 key값을 초과하는 가장 첫 번째 원소의 위치반환
- 기본 생성 : map< [Data type1], [Data type2] > [변수이름];
- m[key] = val; 을 통해서 원소( key, value ) 를 추가 또는 수정이 가능