반응형

순환 3

[알고리즘] 순환(Recursive) 개념과 기본 예제 3 정리

순환(Recursive) 개념과 기본 예제 3 정리 Designing Recursion; 순환 알고리즘의 설계 1. 순환 알고리즘 설계 적어도 하나의 base case, 즉 순환되지 않고 종료되는 case가 있어야 함 모든 case는 결국 base case로 수렴해야 함 KeyPoint - 암시적(implicit) 매개변수를 명시적(explicit) 매개변수로 바꾸어라 2. 예제 - 순차 탐색 data[0]에서 data[n-1] 사이에서 target을 검색한다 // 6. 순차 탐색 - 변경 전 func search(data: [Int], n: Int, target: Int) -> Int { for i in 0.. 배열의 시작 인덱스를 뜻하는 암시적 매개변수 if data[i] == target { ret..

[알고리즘] 순환(Recursive) 개념과 기본 예제 2 정리

순환(Recursive) 개념과 기본 예제 2 정리 Recursive Thinking; 순환적으로 사고하기 1. Recursion은 수학 함수 계산에만 유용한가? → 다른 많은 문제들을 recursion으로 해결할 수 있다 많은 예제들 문자 개수 세기 문자열을 뒤집어 출력하기 2진수로 변환하여 출력 배열의 합 구하기 데이터 파일로 부터 n개의 정수 읽어 오기 ... 1. 2진수 변환 출력 예제 // 4. 2진수로 변환하여 출력 func printBinary(n: Int) { // 음이 아닌 정수 n을 이진수로 변환하여 인쇄한다 if n < 2 { print(n, terminator: "") } else { printBinary(n: n / 2) // n을 2로 나눈 몫을 먼저 2진수로 변환하여 인쇄한 후..

[알고리즘] 순환(Recursive) 개념과 기본 예제 1 정리

순환(Recursive) 개념과 기본 예제 1 정리 순환(Recursive) 자기 자신을 호출하는 함수 1. 순환은 항상 무한 루프에 빠질까? 단순 호출만 하면 발생 가능 // 1. 무한 루프 예제 func infinityLoop() { print("Hello, World!") infinityLoop() } infinityLoop() recursion이 적절한 구조를 가지게 해서 무한 루프에 빠지지 않도록 함 2. 적절한 구조? func sum(n: Int) -> Int { if n == 0 { // Base Case - n이 0이면 종료 return 0 } else { return n + sum(n: n-1) // Recursive Case - 반복하다가 n이 0이 되는 순간이 온다 } } Base C..

728x90
반응형