⭐️ 나중에 잊을 때쯤 다시 풀어볼 문제 ⭐️ 초기 접근 방법 ❗️처음에 생각한 방향 스택을 사용하는 것이 가장 적합하다고 판단되어 stack array를 따로 만들고 해당 stack[sp]와 주어진 배열 asteroids[i]의 비교를 통해서 구현하려고 함 [ 처음 코드 ] int* asteroidCollision(int* asteroids, int asteroidsSize, int* returnSize){ int top=-1; int* stack = (int*)malloc(asteroidsSize*sizeof(int)); stack[++top] = asteroids[0]; for(int i=1; i
좋은 문제라고 생각 나중에 다시 풀어보기 좋음! 초기 접근 방법 ❗️처음에 생각한 방향 처음에는 포인터와 새로운 배열을 두고, '*'을 만나면 포인터를 이동해서 앞앞에 있는 character을 배열에 두고, 아니라면 배열에 그냥 두는 방식으로 전개하려고 함 [ 처음 코드 ] char * removeStars(char * s){ int len = strlen(s); char* ret[len]; int cnt=0; char reverse[len]; for(int i=len-1; i>0; i--){ if(s[i] == '*' && s[i-1] != '*'){ if(cnt>0){ for(int j=0; j> stack pointer를 썼던 것으로 생각이 되어서 sp라는 포인터 변수를 둠 ✅ 조건에 따라 sp를 ..
⭐️ 나중에 잊을 때쯤 다시 풀어볼 문제 ⭐️ 초기 접근 방법 ❗️처음에 생각한 방향 일단 문제를 해결할 알고리즘을 잘못 생각함 문제를 읽고, 결국 포함하고 있는 각 알파벳에 대한 빈도가 같으면 된다고 판단해서 코드를 구현 [ 처음 코드 ] bool closeStrings(char * word1, char * word2){ int len1 = strlen(word1); int len2 = strlen(word2); int ht1[26]={0,}; // # of alphabets int ht2[26]={0,}; for(int i=0; i
초기 접근 방법 ❗️처음에 생각한 방향 각 숫자에 대한 Occurrences를 구해야 했기 때문에 key(숫자)-value(빈도)로 자료형을 두기에 적합하다고 생각했고 해시테이블을 이용하고자 함 왜 해시테이블을 이용하고자 했는 지는 아래에 자세히 설명 최종 접근 ✅ 해시테이블은 키값으로 한 번에 데이터를 조회할 수 있는 자료구조로 자료 검색을 굉장히 빠르게 할 수 있다는 장점이 있음 (이미 테이블이 정리가 되어 있다고 가정했을 때) ✅ 해시테이블을 통해 구현하면 간단할거라고 생각한 이유는 1
나중에 잊을 때쯤 다시 풀어볼 문제 더블포인터...힝 초기 접근 방법 ❗️처음에 생각한 방향 주어진 두 배열의 공통이 아닌 숫자를 각각 출력하는 문제로, 가장 처음 생각난 건, Brute Force 방법 즉, 반복문을 중첩해서 다 조회하는 것. 코드는 머리로도 금방 구현이 되나 어차피 Time Limit Exceeded가 뜰 것을 알기에.. 구현하지 않음 최종 접근 해시테이블 알고리즘을 공부하기 위해 푼 문제로 처음부터 어떻게 하면 해시테이블을 사용할 수 있을까 왜 이 문제는 해시테이블이어야만 할까를 초점으로 고민해서 접근 ✅ 해시테이블은 키값으로 한 번에 데이터를 조회할 수 있는 자료구조로 자료 검색을 굉장히 빠르게 할 수 있다는 장점이 있음 (이미 테이블이 정리가 되어 있다고 가정했을 때) ✅ 이 문..
⭐️ 이 문제 다시 풀어보기 ⭐️ 초기 접근 방법 ❗️처음에 생각한 방향 일단 주어진 배열의 수가 k보다 크면 볼 필요 없으니 if 문으로 조건을 한 번 걸고, 서로 다른 두 수를 더해야하니 i != j 가 다른 조건도 걸어 두 번의 for문을 중첩. 처음에는 시간 복잡도를 생각하지 않고 brute force로라도 코드 구현해봄. Brute Force int maxOperations(int* nums, int numsSize, int k){ int ret=0; for(int i=0; i k) r--; else l++; } return ret; } Take aways ✅ C언어 을 통해 주어진 배열을 quick sort 정렬 해줌 : qsort가 정의된 헤더 파일 void qsort (void *base,..