개인적으로 재귀함수적인 사고를 할 수 있도록 도와 준 정말 고마운 알고리즘이라고 생각한다. 아무래도 재귀함수적인 사고에 익숙하지 않기 때문에 이런 훈련이 필요하다고 생각은 했다. 재귀함수는 팩토리얼과 같은 간단한 수식 정도만 계산하는 장난감스러운 아이디어라고 생각했는데, 이러한 선입견을 완벽하게 깨부쉈다. 재귀함수 하나만으로도 이렇게 문제를 해결할 수 있다는 데에 감탄사가 절로 나온다. 문제 확인 public class Maze{ private static int N = 8; private static int[][] maze= { {0,0,0,0,0,0,0,1}, {0,1,1,1,0,1,0,1}, {0,1,0,1,0,0,0,1}, {0,0,0,1,1,1,0,0}, {1,0,1,1,0,0,1,1}, {0,..
학부 시절에도 그렇고, 혼자서 DB SQL쿼리문을 공부했던 시절도 그렇고 배움의 시작은 언제나 "Select * from"이었던 것 같다. 그런데 이 판도가 2010년부터 바뀌기 시작한 것 같다. NoSQL이라는 용어가 처음 나왔을 때는 SQL은 안 돼! 우린 새로운 걸 추구할 거야! 하는 느낌을 받았지만, 그게 아니라 Not only SQL이라는 것을 알고서는 여전히 SQL이 중요하다는 것을 역설하고 있구나 하는 느낌 또한 받았다. 당시에는 RDBMS(Relational DataBase Management System:관계형 데이터베이스) 종류의 DB밖에는 접할 기회가 없어서 데이터베이스의 전부는 관계형 데이터베이스만이 다인 줄 알고 살았던 시절이 있었다. 하지만 MongoDB를 접하게 되면서 DB라는..
재귀 함수란? 특정 문제를 해결할 때 자신의 메서드를 계속 호출(참조)해 가면서 문제를 해결해 나가는 것! 그런데, 자기 자신을 끝없이 호출하게만 한다면 다음과 같은 현상이 일어난다. 이것은 마치.. 무한루프??? 맞다. 반복문과 마찬가지로 끝 점이 없다면 무한루프에 빠지게 된다. 반복문에서의 무한루프는 반복문을 헤어 나올 수 없다는 것이라면, 재귀 함수에서의 무한루프는 나 자신을 끝도 없이 호출하게 된다. 그래서 Stack Overflow라는 그 유명한 오류가 발생하게 된다. 그렇다면 어떻게 해야 할까? 끝 지점이 있어야 한다. 다음의 C 코드를 살펴볼까? 2014년도 계리직 문제 응용 #include int sub(int n){ if(n==0) return 1; //base code if(n==1) ..
- Total
- Today
- Yesterday
- 국비지원교육
- 퀵정렬
- 보고서
- 국가기간전략직종훈련
- html5
- 보고서양식
- 대학생
- BLOB
- 청년구직활동지원금
- N-Queens
- 부분집합
- java
- 멱집합
- 데이터베이스
- 영문법
- 개발자
- ORM
- 미로찾기
- 웹개발자
- 정렬
- 알고리즘
- 20대
- 반응형레이아웃
- 재귀함수
- 시간복잡도
- 해커스매거진
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |