모든 반복문은 언제나 재귀 함수로 변환할 수 있으며, 그 반대도 마찬가지다. 따라서 개발자의 필요에 따라 적절히 골라서 사용하는 것이 중요한데, 그 장단점과 차이를 정리해보자. 반복문(Iteration) 선언 - 이 곳에서 반복이 일어난다는 것을 명시. 직관적이며 가독성 좋음. 시작 - 초기화, 반복 조건, 제어 변수의 변경, 반복문 내의 명령문 실행에 대한 정보 명시 종료 - 특정 조건에 도달 할 때까지 반복적으로 실행 무한반복 - 반복 조건에 따라 발생하며 CPU 사이클을 반복적으로 사용 메모리 - 힙 메모리 사용(넘칠 시 Out Of Memory 에러 발생) 속도 - 빠름 변수 - 많음. 이는 변경 가능한 상태의 증가로 이어지며 프로그램 오류가 발생할 가능성이 상대적으로 높음. 재귀 함수(Recur..
재귀란 일반적으로 정의하자면 자기 언급이다. 수학으로 봤을 땐 일종의 점화식이라고 할 수 있으며, 프로그래밍적으로 이야기하자면 재귀 함수란 정의 단계에서 자시 자신을 호출하는 함수를 가리킨다. 주어진 문제를 풀 때 자기 자신을 다시 호출함으로써 코드의 복잡도를 줄이기 위해 사용한다. 하지만 꼬리재귀 최적화가 되어있지 않은 환경에서 재귀 호출은 스택 메모리를 빠르게 잡아먹게 되므로 실행 속도 측면에서 반복문이 더 좋은 선택이 된다. 여기서 꼬리재귀 최적화란 메서드를 재귀 호출 메서드와 꼬리 메서드로 구분해 재귀 호출 이후 추가적인 연산을 실행하지 않도록 막는 방법이며, C++, Swift, Kotlin 컴파일러에는 자동으로 구현되어 있으나 보안상의 이유로 자바 컴파일러엔 구현되지 않았다. 다만 이에 영향을..
- Total
- Today
- Yesterday
- 면접 준비
- 유럽여행
- 리스트
- RX100M5
- 자바
- 지지
- 백준
- 동적계획법
- 스트림
- Python
- 세계일주
- 기술면접
- 알고리즘
- java
- spring
- a6000
- 야경
- 중남미
- 맛집
- 유럽
- 칼이사
- Backjoon
- 스프링
- 남미
- Algorithm
- 여행
- 파이썬
- BOJ
- 세모
- 세계여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |