알고리즘 2

자료구조/알고리즘 - 알고리즘 part1

1.알고리즘(Algorithm) -문제를 해결하는 최선의 선택 -아래의 순서를 생각하며 문제 해결하기 (1)문제 이해하기(문제 설명, 입출력예시, 제한 및 주의사항 등) (2)전략 세우기(의사코드) (3)전략을 코드로 구현하기 1-1.의사코드(Pseudocode) -프로그래밍 언어로 코드를 작성하기 전에 우리가 쓰는 일상 언어로 프로그램이 작동하는 논리를 먼저 작성하는 것 -장점 (1)시간 단축 (2)디버깅에 용이 (3)프로그래밍 언어를 모르는 사람과 소통할 수 있음 -컴퓨터는 단순하게 0과 1로만 이루어져 있는 기계이기 때문에 기초적인 부분부터 구체적이고 상세하게 명령해야함 -개인의 기호에 맞게 자연어와 프로그래밍 언어를 섞어서 사용하되 자신만의 원칙을 만들어, 일관성이 있으며 다른 사람도 이해할 수 ..

부트캠프 2023.01.19

자료구조/알고리즘 - 재귀 함수

1.재귀 함수(recursion function) : 자기 자신을 호출하는 함수 -재귀 : 원래의 자리로 되돌아가거나 되돌아옴 -장점 (1)여러개의 반복문을 불필요하게 사용하지 않기 때문에, 코드 간결화 및 수정이 용이함 (2)변수를 여러개 사용할 필요가 없음 -단점 (1)코드의 흐름을 직관적으로 파악하기 힘듦(가시성down) (2)반복문에 비해 더 많은 메모리 사용(재귀함수는 반복하여 메서드를 호출하며 지역변수, 매개변수, 반환값을 모두 process stack에 저장하기 때문) (3)메서드가 종료된 후 복귀를 위한 컨텍스트 스위칭 비용 발생(컨텍스트 스위칭이 너무 잦으면 오버헤드가 발생하여 성능이 떨어짐) *비용이 높음 = 오버헤드 발생 -재귀를 사용하기 적합한 경우 (1)주어진 문제를 비슷한 구조의..

부트캠프 2023.01.12