Algorithm
-
04 연결리스트- 백준 5397Algorithm/baekjoon 2022. 1. 17. 16:50
1. 백준 5397 : 키로거 5397번: 키로거 (acmicpc.net) (1)코드 #include #include #include using namespace std; int main(void) { int n; cin >> n; for (int j = 0; j > input; listpw; list::iterator itr = pw.end(); for (int i = 0; i < input.length(); i++) { if (input[i] == '') { if (itr == pw.end())continue; itr++; } else if (input[i] == '-') { if (itr == pw.begin())continue; itr = p..
-
03 배열 - 백준 2577/백준 1475/백준 3273Algorithm/baekjoon 2022. 1. 8. 17:59
(1) 백준 2577 숫자의 개수 2577번: 숫자의 개수 (acmicpc.net) #include using namespace std; int main() { int a, b, c; cin >>a; cin >> b; cin >> c; int cnt = 0; int multi = a * b*c; int multi2 = multi; while (multi2 != 0) { int num = multi2 % 10; //cout a[i]; } cin >> x; for (int i = 0; i 0 && check[x - a[i]]) { cnt++; } check[a[i]] = true; } cout
-
04 연결리스트(2) - 백준 1406 에디터Algorithm 2022. 1. 6. 18:17
#include using namespace std; const int MX = 1000005; char dat[MX]; int pre[MX]; int nxt[MX]; int unused = 1; void insert(int addr, int num) { //insert(1,30) dat[unused] = num; pre[unused] = addr; nxt[unused] = nxt[addr]; int next = nxt[addr]; if (next != -1) pre[next] = unused; nxt[addr] = unused; unused++; } void erase(int addr) { int pre_addr = pre[addr]; int nxt_addr = nxt[addr]; nxt[pre_add..
-
04 연결리스트(1)Algorithm 2022. 1. 6. 17:05
#include using namespace std; const int MX = 1000005; int dat[MX], pre[MX], nxt[MX]; int unused = 1; void insert(int addr, int num) { //insert(1,30) dat[unused] = num; pre[unused] = addr; nxt[unused] = nxt[addr]; int next = nxt[addr]; if(next !=-1) pre[next] = unused; nxt[addr] = unused; unused++; } void erase(int addr) { int pre_addr = pre[addr]; int nxt_addr = nxt[addr]; nxt[pre_addr] = nxt_ad..
-
01 시간복잡도Algorithm 2021. 12. 29. 19:34
1.연습문제 int func2(int arr[], int N){ int occur[101] = {}; for(int i = 0; i < N; i++){ if(occur[100-arr[i]] == 1) return 1; occur[arr[i]] = 1; } return 0; } O(N) 시간복잡도로 주어진 배열 arr에 두 수의 합이 100이 되는 숫자 찾기 예시) int arr[5]={1,23,53,77,60} 출처 블로그: https://blog.encrypted.gg/927?category=773649 출처:바킹독 GitHub - encrypted-def/basic-algo-lecture: 바킹독의 실전 알고리즘 강의 자료
-
03 배열Algorithm 2021. 12. 29. 19:27
1. 알게된 개념 (1) 배열에서 시간 복잡도 임의의 위치에 있는 원소를 확인/변경==O(1) 원소를 끝에 추가==O(1) 마지막 원소를 제거==O(N) 2. 추가 제거 함수 구현 (1) insert 함수 void insert(int idx, int num, int arr[], int& len){ for(int i = len; i > idx; i--) arr[i] = arr[i-1]; arr[idx] = num; len++; } 길이가 len인 배열이다. inx 인덱스에 num을 추가하는 함수이며 +1 된 마지막 index인 len index부터 idx전까지 요소들을 한칸씩 뒤로 땡겨온다. 그 후, arr[idx]에 num을 저장한다. len++로 배열의 길이를 증가시킨다. (2) erase 함수 voi..