본문 바로가기

알고리즘19

[c언어] 포인터에 대해서 마스터하자 대부분 기본적으로 포인터가 무엇인지 포인터를 어떻게 사용해야 하는지 알고 있습니다. int a = 3; int* p = &a; int** pp = &p; 다음과 같이 어떤 변수의 주소를 나타낸다는 것. 여기까지는 쉽게 알 수 있는 내용입니다. 그런데 잘 알고 있다고 생각한 포인터를 사용할 때 가끔 헷갈리는 경우가 있습니다. 뭐 문법 이것저것 Visual Studio에서 써보면 알 수 있겠지만 이렇게 시도해보는 것 자체가 시간을 잡아먹는 요인이 됩니다. 따라서 이번 포스팅에서는 헷갈릴 수 있을만한 포인터 문법에 대하여 알아보도록 하겠습니다. 1. 다차원 배열의 등장 int arr[4][5]; 다음과 같은 배열을 선언했을 때 포인터로 어떻게 가리킬까요? 생소하실 수도 있겠지만 문법은 다음과 같습니다. int.. 2019. 11. 13.
Parallel Binary Search Parallel Binary Search 연습문제로는 8217) 유성 이 있다. 2018. 8. 15.
boj2319)사수아탕 2018. 8. 15.
이항계수를 빠르게 구하는 알고리즘 안녕하세요? ryul입니다. 오늘은 이항계수를 빠르게 구하는 알고리즘에 대해서 공부해보겠습니다. 알고나면 매우 쉽습니다. 먼저 이항계수란? 고등학교 때 배웠던 조합이랑 같은 거라고 생각하시면 됩니다. N개의 공 에서 K개의 공을 뽑는 경우의수 를 의미하죠~ 기호로는 어떻게 표시할까요? nCk 이렇게~ 자! 먼저 가장 나이브한 방법으로 nCk 를 구한다면? Phase 1 나이브 nCk = n! / (k!(n-k)!) 을 직접 계산으로 구하게 됩니다. 이 때 n이 커지게되면 nCk의 값은 분명 기하급수적으로 커지게 되므로 n이 클 경우 분명 문제에서 값을 p로 나눈 나머지를 구하라는 요구를 할 것입니다. 따라서 nCk mod p 의 값을 구해야 하는 것인데, 단순히 (분모 mod p) / (분자 mod p).. 2018. 7. 5.