Algorithms/ProblemSolving2015. 8. 22. 21:29

"문제로 풀어보는 알고리즘", 황인욱 김용혁, 인사이트, 2012


위 책을 공부하면서 문제를 푸는 노트로 이 카테고리를 사용하고 있습니다.

제가 블로그에 게시하는 답은 정답이 아닙니다.


정답은 좀 더 많이 풀어본 뒤에 찾아보려 합니다.

Posted by 레라리
Algorithms/ProblemSolving2015. 8. 22. 02:02

* 코드 1-11에 중복 계산이 있을까?

화폐의 종류를 다르게 지정할 경우 없을 것이다.


* 지불하는 방법을 모두 출력하도록 프로그램을 수정하라



'Algorithms > ProblemSolving' 카테고리의 다른 글

notice  (0) 2015.08.22
1.1 팩토리얼 계산하기 : problem  (0) 2015.05.22
Ch1. 재귀적 프로그래밍  (0) 2015.05.22
Reference : 문제로 풀어보는 알고리즘  (0) 2015.05.22
Posted by 레라리
Algorithms/ProblemSolving2015. 5. 22. 22:02

? : factorial() 함수는 n의 값이 커지면 잘못된 결과를 반환한다. 왜그럴까? 어떤 범위의 n에 대해 올바른 결과를 출력하는가?

반환 형식이 int 이므로 

n! <= sizeof(int)

인 상황에서만 정상적으로 값을 반환할 것이다.

팩토리얼은 쉽게 결과값이 커지므로 주의해야한다.


? : 코드 1-2의 factorial2()에서 종료조건 "if (n==1) return 1;"이 없다면 어떤 일이 생길까?

재귀함수의 종료조건이 없어, 리턴을 시작하지 못해서

무한히 함수를 호출하다가 주어진 스택과 메모리를 모두 사용할 것이다. (스택 오버플로우)


같은 코드를 반복문으로도 재귀적으로도 작성할 수 있지만

factorial2() 에서처럼 재귀함수는 큰 입력에 대해 재귀호출이 계속해서 일어날 경우

함수호출시마다 차지하던 스택이 부족해질 수 있어 Stack Overflow 가 발생하게된다.

이는 Segment Fault를 유발한다.

이에 대해 컴파일러의 최적화와 관련해서는 Tail Recursion 를 참조하라.

'Algorithms > ProblemSolving' 카테고리의 다른 글

notice  (0) 2015.08.22
1.5 금액 맞추기 : problem  (0) 2015.08.22
Ch1. 재귀적 프로그래밍  (0) 2015.05.22
Reference : 문제로 풀어보는 알고리즘  (0) 2015.05.22
Posted by 레라리
Algorithms/ProblemSolving2015. 5. 22. 20:59

1.1 팩토리얼 계산하기


*n! 계산하기

*식 1-2를 이용하여 n! 재귀적으로 구하고 함수를 작성하라


1.2 연결리스트 출력하기


*재귀호출을 이용하여 리스트 출력하기

*연결리스트를 역순으로 출력하기

'Algorithms > ProblemSolving' 카테고리의 다른 글

notice  (0) 2015.08.22
1.5 금액 맞추기 : problem  (0) 2015.08.22
1.1 팩토리얼 계산하기 : problem  (0) 2015.05.22
Reference : 문제로 풀어보는 알고리즘  (0) 2015.05.22
Posted by 레라리
Algorithms/ProblemSolving2015. 5. 22. 20:56

"문제로 풀어보는 알고리즘", 황인욱 김용혁, 인사이트, 2012


http://www.insightbook.co.kr/books/programming-insight/문제로-풀어보는-알고리즘-프로그래밍-트레이닝-qa

'Algorithms > ProblemSolving' 카테고리의 다른 글

notice  (0) 2015.08.22
1.5 금액 맞추기 : problem  (0) 2015.08.22
1.1 팩토리얼 계산하기 : problem  (0) 2015.05.22
Ch1. 재귀적 프로그래밍  (0) 2015.05.22
Posted by 레라리