[C로 쓴 자료구조론] 1장 연습문제-11번(하노이의 탑) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-11번(하노이의 탑) 풀이

11번 문제 세 탑이 있는데, 첫 번째 탑에는 반경이 서로 다른 64개의 원 판들이 쌓여 있다. 이때 각 원판은 반경이 큰 순서로 아래부터 쌓여있다. 이제, 다음 규칙에 따라 수도승들이 첫 번째 탑에서 세 번째 탑으로 원판을 옮기려 한다. (a) 한 번에 1개의 원판만을 다른 탑으로 옮길 수 있다. (b) 쌓아놓은 원판은 항상 위의 것이 아래 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 순환 함수를 만들어라. 그냥 재귀함수로 구현할게요~ https://dokhakdubini.tistory.com/190?category=814319 [재귀함수] 재귀함수 구현할 때 염두에 두면 좋은 것들 작년에 c언어를 처음 배울 때도 재귀함수에 대해서 배웠는데 너무 어려워서 그냥 무시한 적이 있..

2020.05.16 게시됨

[C로 쓴 자료구조론] 1장 연습문제-10번(Ackermann 함수) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-10번(Ackermann 함수) 풀이

10번 문제 Ackermann 함수 A(m, n)은 다음과 같이 정의된다. 이 함수는 m, n의 값이 아주 작은 값에서도 급속히 증가하는 성질이 있다. 이 함수를 계산하는 순환함수와 반복 함수를 작성하여라. 뭐하는 함수인지 궁금해서 좀 찾아보았습니다. 그냥 재귀함수에서 대표적으로 쓰이는 함수인 것 같네요. 혹시나 궁금한 분들은 위키피디아ㄱㄱ https://ko.wikipedia.org/wiki/%EC%95%84%EC%BB%A4%EB%A7%8C_%ED%95%A8%EC%88%98 아커만 함수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 계산 가능성 이론에서, 빌헬름 아커만의 이름을 딴 아커만 함수(Ackermann函數, 영어: Ackermann function)는 원시 재귀 함수가 ..

2020.05.15 게시됨

[C로 쓴 자료구조론] 1장 연습문제-9번(이항계수) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-9번(이항계수) 풀이

9번 문제 9. 이항 계수를 계산하는 반복 함수를 작성하고 이를 순환함수로 변환하라 일단 이 문제는 두가지 방법으로 풀이 할 예정입니다. 첫 번째 방법은 정의로, 두 번째 방법은 성질로 풀 예정입니다. 일단 이항 계수는 우리가 확통시간에 배운 C입니다. 조합이요 이게 정의입니다. 혹시라도 모르시는 분들을 위해. 이렇게 하면 그냥 팩토리얼로 계산만 하면 되죠? 팩토리얼 구현에 대한 함수는 전글 보시면 될 것 같습니다. 링크는 여기 https://dokhakdubini.tistory.com/191?category=847037 [C로 쓴 자료구조론] 1장 연습문제-7번(팩토리얼) 풀이 문제 7. 계승 함수 n!은 n1일때 n*(n-1)!의 값을 갖는다. n!을 계산하는 순환함수와 반복 함수를 모두 C로 작성하..

2020.05.07 게시됨

[C로 쓴 자료구조론] 1장 연습문제-8번(피보나치 수열) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-8번(피보나치 수열) 풀이

9번이 8번함수를 구현하면 해결되서 그냥 같이 씁니다. 8번 문제 8. 피보나치 수열은 다음과 같이 정의된다. f(i)를 계산하는 순환 함수와 반복 함수를 모두 C함수로 작성하여라. 이것도 전형적인 재귀함수 꼴이죠? 재귀함수가 힘든사람은 여기! https://dokhakdubini.tistory.com/190?category=814319 [재귀함수] 재귀함수 구현할 때 염두에 두면 좋은 것들 작년에 c언어를 처음 배울 때도 재귀함수에 대해서 배웠는데 너무 어려워서 그냥 무시한 적이 있었는데 물론 그랬다가 지금 충분히 고통을 받을 수 있었습니다. 그래서 재귀함수와 함께 지지고 볶고 하다가 결국.. dokhakdubini.tistory.com 함수 안에는 n=0일 때와 n=1일때만 구현하고, 나머지 경우는 ..

2020.05.06 게시됨

[C로 쓴 자료구조론] 1장 연습문제-7번(팩토리얼) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-7번(팩토리얼) 풀이

문제 7. 계승 함수 n!은 n1일때 n*(n-1)!의 값을 갖는다. n!을 계산하는 순환함수와 반복 함수를 모두 C로 작성하여라. 이거 재귀함수 근본문제죠? 재귀함수가 어려우신 분들은 제가 며칠 전 작성한 글 참고해 주시면 좋을 것 같습니다. 글은 여기! https://dokhakdubini.tistory.com/190?category=814319 [재귀함수] 재귀함수 구현할 때 염두에 두면 좋은 것들 작년에 c언어를 처음 배울 때도 재귀함수에 대해서 배웠는데 너무 어려워서 그냥 무시한 적이 있었는데 물론 그랬다가 지금 충분히 고통을 받을 수 있었습니다. 그래서 재귀함수와 함께 지지고 볶고 하다가 결국.. dokhakdubini.tistory.com 그래서 일단 함수를 작성할 때는 n

2020.05.05 게시됨

[C로 쓴 자료구조론] 1장 연습문제-5번(비둘기집) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-5번(비둘기집) 풀이

문제 5. 비둘기 집 원칙(pigeon hole principle)이란 함수가 f가 n개의 상이한 입력에 대해 n개보다 작은 상이한 출력이 나온다면 a!=b이고 f(a)=f(b)인 2개의 입력 a, b가 존재한다는 것이다. 이와 같이 입력 값이 상이하면서 함수 값이 같은 a, b를 찾는 C프로그램을 작성하여라. 확통시간에 어디선가 본것같은 이 느낌.... x와 y를 정해놓고 그걸 찾는 알고리즘을 짜면 되겠죠 #include #include #include #define MAX 30 // 배열의 최대 크기 #define FUN(x) (x*x - 100*x + 8) // 임의의 함수 정의 int find(int result, int n); int output[MAX] = { 0 }; // 각 변수의 함수결과..

2020.05.03 게시됨

[재귀함수] 재귀함수 구현할 때 염두에 두면 좋은 것들 포스팅 썸네일 이미지

Coding_Algorithm/C_C++

[재귀함수] 재귀함수 구현할 때 염두에 두면 좋은 것들

작년에 c언어를 처음 배울 때도 재귀함수에 대해서 배웠는데 너무 어려워서 그냥 무시한 적이 있었는데 물론 그랬다가 지금 충분히 고통을 받을 수 있었습니다. 그래서 재귀함수와 함께 지지고 볶고 하다가 결국 여러가지를 깨달을 수 있었습니다.. 아직 저도 제대로 아는건 아니지만 발상하는 방법 자체를 정리하면 좋을 것 같네요! 발상에 도움되는 것 일단 재귀함수를 어려워하는 사람들의 특징은(나도그랬고) 재귀가 일어나는 안쪽에서 어떻게 진행이 되는가 에 대해서 궁금해한다는 것입니다.. 물론 알면 좋겠지만, 재귀가 3중, 4중으로 겹겹이 진행되면 머리가 슬슬 아파오고, 포기를 하게 됩니다. 그러나 재귀함수에서 진짜 핵심은 재귀함수를 사용함으로써 재귀함수가 하는 역할 을 파악하는 것입니다. 우리가 굳이 재귀함수를 다 ..

2020.05.02 게시됨

[C로 쓴 자료구조론] 1장 연습문제-4번(정렬) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-4번(정렬) 풀이

4번 문제풀이입니다. 4. 정수 x, y, z를 오름차순으로 출력하는 C프로그램을 작성하라. 사실 이건 그냥 정렬하는 방법을 찾으라는 소리죠? 선택정렬, 버블정렬, 퀵정렬 등 여러가지 정렬이 있는데 이전에 포스팅했던 정렬 포스트들 올립니다. https://dokhakdubini.tistory.com/172?category=847037 [자료구조] 선택정렬(Selection Sort)에 대하여 Data_Structure 선택정렬에 대하여 About. Selection Sort 정의: 1개이상의 서로 다른 정수를 가장 작은순서부터 배열하는 정렬 배열할때 가장 작은 수부터 배열하고싶으면, 가장 작은 숫자를 찾아서 맨 처음, 그.. dokhakdubini.tistory.com (버블정렬, 퀵정렬 추가예정)

2020.05.02 게시됨

[C로 쓴 자료구조론] 1장 연습문제-3번(Boolean출력) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-3번(Boolean출력) 풀이

1장 연습문제-3번(Boolean출력) 풀이입니다. 3. n개의 Boolean 변수 x1, x2, x3, ... ,xn이 주어졌을 때, 이 변수들이 가질 수 있는 가능한 모든 진리 값의 조합을 구하고자 한다. 예를 들어 n=2이면 , , , 와 같은 네 가지 경우가 존재한다. 이를 구하는 C프로그램을 작성하여라. 정말 '이 문제를 어떻게 풀면 좋을까'를 조금 생각해보면 Boolean은 true혹은 false의 값만 가능하기 때문에 전체 경우의 수는 2^n개입니다. 이 경우들을 어떻게 출력하면 좋을까 생각했는데, 수형도를 이용하는 방법으로 구현을 해보았습니다. 일단 위 경우는 n=3일때 가능한 수형도입니다. 첫 번째 경우의 수부터 여덟번째 경우의 수까지 순서대로 출력하면 될 것 같네요! 이런 수형도의 꼴을..

2020.05.01 게시됨

[C로 쓴 자료구조론] 1장 연습문제-2번(Horner법칙) 풀이 포스팅 썸네일 이미지

Coding_Algorithm/DS_Algorithm

[C로 쓴 자료구조론] 1장 연습문제-2번(Horner법칙) 풀이

문제 우선 Horner의 법칙을 간단하게 알아봅시다. https://jackpot53.tistory.com/119 그냥 여기 보고 옵시다. 여기가 설명 제일 잘되어있는듯 한줄정리를 하자면 한 항씩 계산을 하자니 효율성이 떨어져서 다른 계산했던 값들을 다시 가져다 쓰는 방법입니다. 그냥 코드로 하나하나 설명하는 방법이 훨신 나을 것 같네요 #include #define MAX_SIZE 101 double horner(int *coeff, int n, int x); int main() { int coeff[MAX_SIZE] = { 1, 2, 3, 4, 5 };// 1 + 2x + 3x^2 + 4x^3 + 5x^4 int n=5;//몇차다항식인지 알려주는 상수 double result, x; printf("x..

2020.04.30 게시됨