Algorithm
![[세모] 백준 1269 대칭차집합 // 카운팅스타? 맵또는 배열<img src=](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl11br%2FbtsMFHej4ub%2FpcTMFKvrZLbQEdA8BfK0lk%2Fimg.png)
[세모] 백준 1269 대칭차집합 // 카운팅스타? 맵또는 배열
https://www.acmicpc.net/problem/1269* 풀이1set에 넣고, binary_search로 찾아서 제거 #includeusing namespace std; int t;int n,m;vector a,b;set s;int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i=0;i>tmp; a.push_back(tmp); s.insert(tmp); } for(int i=0;i>tmp; b.push_back(tmp); s.insert(tmp); } sort(b.begin(),b.end()); //정렬주의!! for(int ..
![[세모] 백준 6236 용돈관리 // 매개변수 탐색<img src=](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPvL7m%2FbtsMEO6ivTW%2FobrfaC08tB7UfQsVll1KfK%2Fimg.png)
[세모] 백준 6236 용돈관리 // 매개변수 탐색
https://www.acmicpc.net/problem/6236 * 풀이1문제가 좀 난해했다. 반복인출 x통장에 남은돈을 사용할수 없음. 무조건 집어넣어야함. x원만 가능.반복인출 불가능 -> 안되는 경우 예외처리 추가go함수#includeusing namespace std; int n,m,ret;int a[100000+4];int go(int x) { // 인출할돈이 X 일때, 가능한지 //인출할돈보다 써야할돈이 크면 반드시 실패 for(int i=0;i x) { return 0; } } int cnt=1; //인출한 횟수 int remain=x; // 남은돈 for(int i=0;i>n>>m; for(int i=0;i>a[i]; } int..
![[틀림] 백준 2343 기타레슨 // 매개변수 탐색, 음수기반 카운팅<img src=](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceJ78j%2FbtsMDtVUYIN%2F8TPzvetjFbGMKlyz7fMqEk%2Fimg.png)
[틀림] 백준 2343 기타레슨 // 매개변수 탐색, 음수기반 카운팅
https://www.acmicpc.net/problem/2343* 풀이완탐 : 이중 for문이분탐색 : 첫번째 for문을 이분탐색으로 교체 go 함수 구현이 빡센문제f(1)이 거짓이 나와야 되는 문제 발생예외처리 필요어떤 강의가 블루레이보다 긴경우, 무조건 false를 반환하도록 처리 필요.강의 중 하나라도 Blu-ray 용량보다 긴 경우, 해당 용량(x)은 적합하지 않으므로 무조건 false를 반환.en= mid-1st = mid +1음수기반 카운팅 필요양수기반은 case가 많아져서 너무 복잡// x : 빼고 남은크기int temp = x; // 블루레이의 크기 저장int cnt = 0;for(int i = 0; i 초기화 주의최대 길이 = 10000분 * 최대갯수 여야함int st=1;int en..
![[알고리즘] 리트코드 course schedule // dfs cycle 감지](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpH4HH%2FbtsMC0ejKWi%2FZGduJPHm5Ik9VWa0cfvQQ0%2Fimg.png)
[알고리즘] 리트코드 course schedule // dfs cycle 감지
https://leetcode.com/problems/course-schedule/description/* 풀이선행조건을 방향 그래프로 바꿔서 표현뒤의원소의 인접리스트에 앞의 원소 추가vis의 상태를 구분해야함1: 방문중2: 방문완료vector adj[2004];int vis[2004]; // 1: 방문중, 2: 방문완료class Solution {public: int dfs(int cur){ if(vis[cur]==1) return 0; // 사이클! if(vis[cur]==2) return 1; vis[cur]=1; for(auto nxt : adj[cur]){ int res = dfs(nxt); if(re..
![[세모] 백준 2792 보석상자 // 이분탐색, 매개변수탐색](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRewxX%2FbtsMByWMFRP%2FHed8DWqxNLFDNMUxcPio1k%2Fimg.png)
[세모] 백준 2792 보석상자 // 이분탐색, 매개변수탐색
https://www.acmicpc.net/problem/2792* 풀이 헤맸던부분질투심이 x 일때, 학생수를 계산하는 idea그림으로 그려보자st,en을 디버깅 찍어가면서 수정 (st+en) or (st+en+1)#includeusing namespace std; int n,m;int a[300000+4];int go(int x) { int cnt=0; // 필요한 학생수 for(int i=0;i>n>>m; for(int i=0;i>a[i]; } int st=1; int en=pow(10,9); while(st
![[틀림] 백준 17822 원판돌리기 // 구현, 배열회전, 원형 dfs](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxlQZ9%2FbtsMAmCWjP0%2FBCtKch1hSAfuOvwSdIThXk%2Fimg.png)
[틀림] 백준 17822 원판돌리기 // 구현, 배열회전, 원형 dfs
https://www.acmicpc.net/problem/17822* 틀린풀이인접한것들 지우는 idea (좌우, 상하 1개씩만 비교)반례 : 3단 인접인경우, 처리가 안됨dfs를 해야하나? * 정답풀이원형 dfs에서 next 계산방법else if 주의수정후 else if 안하면 바로 조회하기때문에 오답이됨. else if 써야함. #includeusing namespace std; int n,m,t,ret, vis[54][54];int x,d,k, found;vector v[54];const int dy[] = {-1, 0, 1, 0}; // 상, 우, 하, 좌 (y 방향)const int dx[] = {0, 1, 0, -1};void calc() { for(int i=0;i rotate(..
![[틀림] [알고리즘] 백준 2632 피자판매 // 누적합, 원형배열](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo7q8P%2FbtsMtaWdic5%2FXVkbM1etoeU8gIq5E1UGZk%2Fimg.png)
[틀림] [알고리즘] 백준 2632 피자판매 // 누적합, 원형배열
https://www.acmicpc.net/problem/2632* 풀이1dp로 해보려다 실패 * 풀이2원형을 선형으로 만드는 힘 (뒤에 고대로 붙이면 됨)구간쿼리는 누적합 (누적합은 1-idx로 하는게 편한듯)경우의수는 등장 횟수를 저장하라 start 의 범위 문제start [1,2,3] / 간격2 의 예시에서 막라운드는 [3,1] 이다.막라운드 일때, start index는 4다.4 = n(3) + interval(2) -1 이다. #includeusing namespace std; int n,m,target,ret;int a[2004], b[2004], pa[2004],pb[2004];map ma, mb; // int main(){ ios_base::sync_with_stdio(0); cin..
![[틀림] [알고리즘] 백준 15685 드래곤 커브 // 구현, 기하문제는 규칙을 찾아라](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvcqTg%2FbtsMjAIv7oS%2FawsL6wUmGxzaXvWgS6AduK%2Fimg.png)
[틀림] [알고리즘] 백준 15685 드래곤 커브 // 구현, 기하문제는 규칙을 찾아라
https://www.acmicpc.net/problem/15685* 풀이과정시도1너무복잡.. gg * 큰돌풀이상태를 정의함각 그림을 상태(숫자)로 표현!!숫자에서 규칙찾기vector에 [방향][세대] = { 방향정보들 } 저장#includeusing namespace std; int ret;int n,x,y,d,g;vector v[4][11]; //v[방향][세대] : { ... } 방향정보들int dy[] = {0,-1,0,1}; // 오위좌아int dx[] = {1,0,-1,0};int vis[104][104];void go(int x, int y, int d, int g) { int _x = x; int _y = y; vis[y][x]=1; //시작점 체크 // 주의 : 0세대부터 ..