본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다

코딩17

[Data Structure] 재귀(Recursion) ● 재귀 재귀는 순환이라고도 불리며 함수가 자기 자신을 호출하여 문제를 해결하는 것을 의미합니다. 원래 함수를 정의할 때 A함수 안에 B함수를 정의하는 것은 불가능합니다. 그러나 A함수의 정의에 B함수를 활용할 수는 있습니다. 재귀는 여기서 A함수의 정의에 A함수를 활용하는 것이라고 할 수 있습니다. 재귀를 활용하는 대표적인 예시들이 있습니다. 예를 들어 팩토리얼 함수의 구현입니다. n!을 계산하고자 할 때 우리는 이를 n * (n-1)!로 바꿔줄 수 있습니다. 그리고 우리는 또 (n-1)!을 (n-1) * (n-2)!로 바꿀 수 있습니다. 이를 코드로 구현하면 다음과 같습니다. int factorial(int n) { if(n 2->3이기 때문에 2번 출력문은 1부터 순서대로 적힐 것입니다. 다른 예시.. 2023. 4. 11.
[Data Structure] 이분 탐색(Binary Search) ● 순차 탐색 알고리즘과 시간 복잡도 탐색이란, 수많은 데이터 속에서 내가 원하는 데이터를 찾는 과정을 말합니다. 예를 들어 1부터 100까지의 숫자가 적힌 배열에서 31을 찾는 것은 탐색을 거쳐야 할 것입니다. 그중 순차 탐색이란, 처음부터 끝까지 찾고자 하는 데이터를 탐색하는 것을 말합니다. 순차 탐색 알고리즘을 구현하면 다음과 같습니다. int LSearch(int arr[], int len, int tar) { for (int i = 0; i < len; i++) { if (arr[i] == tar) { return i; } } return -1; } int main(void) { int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int length = sizeof(.. 2023. 4. 10.
[자바 JAVA] 제네릭과 컬렉션 프레임워크 제네릭 타입 제네릭이라는 말은 영어 general에서 나온 말로 '포괄적인'이라는 뜻입니다. 즉, 여태까지 하던 방법처럼 계속 타입을 선언하고 변환하는 과정을 거치는 것이 아니라 이 모든 과정이 필요 없게 한 가지 키워드에 모든 것을 함축해놓은 타입을 의미합니다. 제네릭 타입이란, 타입을 파라미터로 가지는 클래스와 인터페이스를 의미합니다. 제네릭 타입은 표시로 선언합니다. 제네릭은 기존의 타입들을 포괄적인 범위로 변경해주는 역할이기 때문에 완전히 생소한 단어는 없습니다. 기본 타입이라고 한다면 int, double, char, float 등이 있습니다. 그러면 제네릭 타입에서의 파라미터는 Integer, Double, Character, Float 등이 됩니다. 이들은 모두 기본 타입의 풀네임과 .. 2022. 12. 7.
[자바 JAVA] 예외처리 자바의 오류는 예외와 에러로 나뉩니다. 예외는 자바 프로그램에서 실행 중에 발생할 수 있는 경미한 오류들을 말합니다. 이러한 예외들은 적절한 처리 모듈을 추가하여 발생한 문제를 복구 가능합니다. 에러는 메모리나 내부의 심각한 문제로 복구가 불가능한 오류입니다. 즉, 코드를 다시 수정해야 하는 경우이죠. 간혹 가다가 디버깅을 해보게 되면 콘솔 창에 빽빽한 글자로 Exception이라는 글자가 들어가 있는 경우를 보게 됩니다. 이가 바로 예외가 발생한 경우입니다. 예외가 발생하면 바로 프로그램이 중단되므로 발생한 이후의 프로그램을 실행하지 않습니다. 그리고 콘솔 창에 예외 클래스의 이름과 예외가 발생한 프로그램 소스와 줄 번호가 표시됩니다. 그중 여러분들이 한 번쯤은 보셨을 법한 예외들을 소개해보겠습니다. .. 2022. 12. 6.