본문 바로가기

Android ᙏ̤̫͚

차근차근 BOJ 알고리즘 공부를 하다가 연습문제만으로는 안되겠다 싶어서 백준 도전 ! 정말 자신 없어서 백준 페이지에서 단계별로 분류해놓은 알고리즘 먼저 시작하는데, 1일 1문제 도전 !!! 더보기
Chapter 05. 재귀 알고리즘 chapter 05 - 1 재귀의 기본 재귀 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의하는 것 - 재귀를 효과적으로 사용한다면 프로그램, 정의를 간결하게 할 수 있음 - 직접 재귀 (direct) : 내부에서 자신과 같은 메서드 호출 - 간접 재귀 (indirect) : a가 b를 호출하고 b가 다시 a를 호출하는 구조 - 풀어야 할 문제, 계산할 메서드, 처리할 데이터 구조가 재귀로 정의되는 경우 가장 알맞음 팩토리얼 구하기 - 재귀적 정의 ① 0! = 1 ② n > 0인 경우 n! = n X (n - 1)! 유클리드 호제법 - 두 정수의 최대공약수(greatest common divisor) 구하기 - 두 수를 직사각형의 각 변이라고 가정하여 짧은 변으로 하는 정사각형으로 분할.. 더보기
Chapter 04. 스택과 큐 chapter 04 - 1 스택 데이터를 일시적으로 저장하기 위한 자료구조 후입선출 구조 (LIFO (Last In First Out) : 가장 나중에 넣은 데이터를 가장 먼저 꺼냄) - 스택 관련 키워드(용어) - push : 스택에 데이터를 넣는 작업 - pop : 스택에서 데이터를 꺼내는 작업 - top : push / pop 하는 위치 - bottom : 스택의 가장 아랫부분 - Java에서 메서드 호출하고 실행 시 프로그램 내부에서는 스택 사용 - 스택 만들기 - 스택 본체의 배열, 스택 포인터, 스택 용량 등의 변수 필요 - 연습문제 - 클래스 IntStack의 모든 메서드를 사용하는 프로그램 (ⓒⓞⓓⓔ) ex01.java - 임의의 객체형 데이터 쌓을 수 있는 제네릭 스택 클래스 Gstack.. 더보기
Chapter 03. 검색 chapter 03 - 1 검색 알고리즘 데이터 집합에서 원하는 값(key)을 가진 요소를 찾아내는 알고리즘 - 특정 항목 (key)에 주목하는 것이 검색의 특징 - ex) 국적이 한국인 사람 찾기 : 국적 특성 중 key = "한국" - ex) 고등학생 찾기 : 나이 특성 중 key = "17세 이상 20세 미만" (구간이 될 수도 있음) ** 배열 검색에서 활용하는 알고리즘 - 선형 검색 - 무작위의 데이터 집합 속에서 검색 수행 - 이진 검색 - 일정한 규칙을 가진 데이터 집합 속에서 아주 빠른 검색 수행 - 해시법 - 추가, 삭제가 자주 일어나는 데이터 집합에서 아주 빠른 검색 수행 - 체인법 : 같은 해시 값을 가지는 데이터를 선형 리스트로 연결 - 오픈 주소법 : 데이터의 해시 값이 충돌하는 .. 더보기
Chapter 02. 기본 자료구조 chapter 02 - 1 배열 자료구조 (data structure) 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 배열 (array) 같은 자료형의 변수로 이루어진 구성 요소의 집합 - 가장 기본적이고 간단한 자료구조 - int[] a; // int 타입 배열 선언 - a = new int[5]; // a는 길이가 5인 int 타입 배열 참조 - int[] a = new int[5]; // 배열 선언과 참조 한번에 가능 - int[] a = {1, 2, 3, 4, 5}; // 배열 초기화(array initializer) 사용하여 배열 생성과 구성 요소 초기화 - 구성 요소 - array[index] // 인덱스 통해 구성 요소에 접근 가능 - array.length // 배열의 길이 .. 더보기
Chapter 01. 기본 알고리즘 chapter 01 - 1 알고리즘이란 ? 문제를 해결하기 위해 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합 최댓값 구하는 알고리즘 - max3(a, b, c) 함수 생성하여 활용 ① max에 a값 대입 ② b > max인 경우 max에 b값 대입 ③ c > max인 경우 max에 c값 대입 - 순서대로 진행되는 순차적 구조 - ②, ③은 조건 만족 시 해당 명령 실행하는 선택 구조 - 연습문제 - 네 값의 최댓값 구하기 (ⓒⓞⓓⓔ) ex01.java - 세 값의 최솟값 구하기 (ⓒⓞⓓⓔ) ex02.java - 네 값의 최솟값 구하기 (ⓒⓞⓓⓔ) ex03.java - 13종류의 대소관계 조합에 대해 중앙값 구하기 (ⓒⓞⓓⓔ) ex04.java 조건 판단과 분기 알고리즘 - ex) if.. 더보기