본문 바로가기

전체 글82

[C] 함수 포인터 [C] 함수 포인터 -함수 포인터 그동안 포인터를 배우면 어떤 변수의 주소를 얻어오는 걸 할 수 있게 되었다. 그렇다면 변수의 주소뿐만 아니라, 함수의 주소도 가져올 수 있다. // 포인터로 동적으로 함수를 불러오기 void Test() { } void Test2() { } int main() { //함수 포인터: 반환타입, 주소, 인자 void(*pFunc)(void) = nullptr; //선언 당시 함수 타입이 맞아야 호출가능 pFunc = Test; pFunc(); // Test 함수가 불려진다. pFunc = Test2; pFunc(); // Test2 함수가 불려진다. } 2022. 3. 12.
[C] Bubble sort [C] Bubble sort 시간 복잡도 O(n^2)이다. 시간 복잡도가 높은 편이지만 구현이 간단하다. code void BubbleSort(int* _pData, int _iCount) { // 데이터가 1개 이하면 정렬하지 않는다. if (_iCount _pData[i + 1]) //앞의 값이 뒤의 값보다 클때 서로를 바꾼다. { int iTemp = _pData[i]; _pData[i] = _pData[i + 1]; _pData[i + 1] = iTemp; bFinish = false; } } if (bFinish) break; } } void main() { int iArr[10] = {87, 644, 21, 55, 879, 32, 1, }; //임의의 배열 BubbleSort(iArr, 10).. 2022. 3. 11.
[HackerRank] Balanced Brackets [HackerRank] Balanced Brackets 문제 링크 https://www.hackerrank.com/challenges/balanced-brackets/problem?isFullScreen=true 생각 더보기 닫는 괄호까지 달린다. 닫는 괄호가 나오면 앞부분을 자른다. 앞부분은 sliced 앞부분에서 제일 뒤에 있는 연괄호를 찾는다(역정렬) 앞부분에서 연 괄호를 찾는다 짝을 맞췄으니 pop으로 버린다 반복반복 절대 좋은 코드는 아니라고 생각하기에 다양하게 시도해보길 바란다. 같이 알고리즘 문제를 풀던 지인분의 코드는 정말 깔끔하고 참신해서 더 분발해야겠다. 지인분은 .replace()를 이용해서 10줄이하로 푸셨다. 굿굿 코드 def isBalanced(s): s = list(s) res.. 2022. 3. 11.
[HackerRank] Jesse and Cookies [HackerRank] Jesse and Cookies 문제 링크 https://www.hackerrank.com/challenges/jesse-and-cookies/problem?isFullScreen=true 코드 def cookies(k, A): import heapq cnt = 0 heapq.heapify(A) #A: list -> heap while(A[0]1): sweetness = heapq.heappop(A) + 2*heapq.heappop(A) heapq.heappush(A,sweetness) cnt += 1 if(A[0] < k): return -1 return cnt 2022. 3. 9.