본문 바로가기

#자바#JAVA#알고리즘#DoIt#기본 알고리즘#

[자바 Do It! 알고리즘]Chapter03 검색 알고리즘(검색 알고리즘, 선형검색) 여기에서 배우는 것은 배열 검색이며 다음의 알고리즘을 활용합니다. 1. 선형 검색 - 무작위로 늘어놓은 데이터 모임에서 검색을 수행합니다. 2. 이진 검색 - 일정한 규칙으로 늘어놓은 데이터 모임에서 아주 빠른 검색을 수행합니다. 3. 해시법 - 추가, 삭제가 자주 일어나는 데이터 모임에서 아주 빠른 검색을 수행합니다. - 체인법 : 같은 해시 값의 데이터를 선형 리스트로 연결하는 방법 - 오픈 주소법 : 데이터를 위한 해시 값이 충돌할 때 재해시하는 방법 ​ 데이터 집합이 있을 때 '검색만 하면되지!'라고 생각한다면 검색에 사용할 알고리즘은 계산시간이 짧은 것을 선택하면 됩니다. 그러나 데이터 집합에 대한 검색뿐 아니라 데이터의 추가, 삭제 등을 자주하는 경우라면 검색 이외의 작업에 소요되는 비용을 종.. 더보기
[자바 Do It! 알고리즘]Chapter02 기본 자료구조(신체검사 데이터 클래스의 배열) 신체검사 데이터 클래스의 배열 1 PhyscData는 inner클래스로 static 선언을 해준 것인가 봅니다.. 코드에 대한 내용 설명이 없습니다 책에 ㅠ.ㅠ 어느 부분은 해석이 가능하나 어느 부분은 어렵네요. ​ 신체검사 데이터 클래스의 배열2 신체검사 데이터 클래스의 배열3 ​ ※ 클래스 보충 설명 [클래스 본체와 멤버] 1. 클래스 본체에서는 다음과 같은 내용을 선언할 수 있다. - 멤버(필드/메서드/중첩(nested) 클래스 / 중첩(nested) 인터페이스) - 클래스 초기화 / 인스턴스 초기ㅗ하 - 생성자 2. 필드/메서드/생성자를 선언할 때 public / protected / private을 지정할 수 있다. 3. 메서드/생성자는 다중으로 정의(오버로드)할 수 있다. 4. final로 선.. 더보기
[자바 Do It! 알고리즘]Chapter02 기본 자료구조(기수변환, 소수 구하기, 한 해의 경과일 수 구하기) 안녕하세요, 의창입니다. 이번 알고리즘들은 이해하기 너무 어렵네요 ㅠ.ㅠ 그래도 꾸준히 하다보면 언젠가 늘겠죠..? 사실 지금 정리하면서도 잘 이해안됩니다! ​ 기수 변환 프로그램 ☞ digits는 변환한 수의 자릿수를 나타내기 위한 변수 ☞ do문 루프본문에서 수행하는 작업 1. 먼저 x를 r로 나눈 나머지를 인덱스로 하는 문자를 배열 d의 요소 d[digits]에 대입하고 digits 값을 증가시킵니다. 2. x를 갈로 나눕니다. 예를 들어, x%r이 11이면 문자 'B'를 d[digits]에 대입하고, 그 다음 digits를 증가시킵니다. 이 작업을 x가 0이 될 때까지 반복합니다. ​ ※ String 클래스 중 기억해야 할 메서드 char charAt(int i) // 인덱스가 i인 곳의 문자를 .. 더보기
[자바 Do It! 알고리즘]Chapter02 기본 자료구조(난수를 통한 배열설정, 배열요소 역순정리, 두 배열의 비교) 난수를 사용해 배열의 요솟값 설정하기 ☞ nextInt(n)가 반환하는 것은 0부터 n-1까지의 난수입니다. 이 프로그램의 경우 0부터 89까지의 난수가 생성됩니다. ​ 배열요소를 역순으로 정리하기 ​ 두 배열의 비교 ​ 더보기
[자바 Do It! 알고리즘]Chapter02 기본 자료구조(배열의 특성(자동으로 0으로 초기화), 배열의 복제, 배열 요소의 최댓값을 구하는 메서드) Chapter02 는 기본 자료구조에 대해서 얘기합니다. 시간이 없어서 3개밖에 못했습니다. ​ 배열의 특성(자동으로 0으로 초기화) ​ 배열의 복제 ​ 배열 요소의 최댓값을 구하는 메서드 개인적으로 이 알고리즘을 보면서, 정말 사람들은 똑똑하다고 느꼈습니다 ㅠ.ㅠ 한 없이 작아지네요.. 더보기
[자바 Do It! 알고리즘]Chapter01 기본 알고리즘(최댓값, 중앙값, 입력한 정수값 부호확인, 1부터 n까지의 합, 양수만, 2자리 양수, 곱셈표, 직각이등변삼각형) 이 카테고리는 제가 Do It! 자료구조와 함께 배우는 알고리즘 입문(자바편)을 보면서 책에서 나온 예시글을 옮겨온 것입니다. ​ 책을 읽으면서 이해를 바탕으로 예시를 따라해보았습니다. 일단 1회차는 완독이 목표라 연습, 예제문제는 풀지 않습니다. ​ 국비지원에서 자바를 배우고 있는데, 커리큘럼안에 다른 과정(HTML, SQL, NCS 등등)이 섞여있다보니 자바를 다루지 않는 시간에 기억이 가물가물해질까봐 하루에 하나라도 알고리즘을 익혀보자!라는 마인드로 시작하였습니다. ​ 설명이 부족하고 사진만 올라가 있는 경우가 많을 겁니다. 이것은 단순히 제가 공부했던 흔적을 기록하기 위한 곳이기 때문입니다. 이해 부탁드립니다! ​ '알고리즘'은 '문제를 해결하기 위한 것으로, 명확하게 정의되고 순서가 있는 유한 .. 더보기