본문 바로가기
반응형

자바(Java)/자바기초28

[자바기초.030] Sorting Algorithms [자바기초.030] Sorting Algorithms 데이터를 정렬하는 알고리즘은 아주 많습니다. 이곳에서 다룰 정렬 알고리즘은 Selection, Insertion, Merge 정렬 알고리즘 입니다. 1.Selection Sort 선택 정렬(selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다. 1.주어진 리스트 중에 최소값을 찾는다. 2.그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)). 3.맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. n개의 주어진 데이터를 이와 같은 방법으로 정렬하는 데에는 Θ(n^2) 만큼의 시간이 걸린다.(이중 for문) 좀 더 자세히 설명하면, Selection Sort(선택 정렬)는 첫 번째 데이터를 두 번째 데.. 2024. 3. 30.
[자바기초.029]Searching Algorithms [자바기초.029]Searching Algorithms 1.Search Algorithm 컴퓨터는 많은 양의 데이터를 메모리에 저장하고 원하는 데이터를 빠르게 찾아내는 역할을 합니다. 그 중에서 데이터를 찾아내는 일을 "탐색(Searching)"이라고 말합니다. 가장 대표적인 Searching 방법인 Sequential(Linear) Search와 Binary Search 알고리즘에 대해 알아봅시다. 2.Sequential Search(Linear Search) Sequential Search = Linear Search = 순차 탐색 Sequential Search는 데이터를 처음부터 끝까지 차례대로 비교하여 원하는 데이터를 찾아내는 알고리즘 입니다. Sequential Search는 정렬되지 않은 데.. 2024. 3. 30.
[자바기초.028] for-each loop [자바기초.028] for-each loop 1.for-each 반복문(Enhanced for 반복문) 배열에 사용하면 좋을 for each loop(enhanced for loop)이 있습니다. for-each문은 그냥 일반적인 for문보다 사용하기 편합니다. for문의 index나 [ ] 괄호를 사용하지 않고 반복문 순회(traverse)를 할 수 있는게 for-each 문입니다. [예제1] 아래 코드는 String형, int 형 배열을 for-each loop으로 순회하며 요소값을 출력하는 코드입니다. HTML 삽입 미리보기할 수 없는 소스 for-each loop를 사용하면 배열의 첫 번째 요소(element)부터 마지막 요소까지 하나씩 자동적으로 접근할 수 있다. for-each loop를 사용.. 2024. 3. 29.
[자바기초.027] 변수 사용 범위(Scope & Access) [자바기초.027] 변수 사용 범위(Scope & Access) 1. 변수의 사용 범위 자바에서 변수를 만들 때, 변수의 사용 범위는 { } 로 정해진다. 자바에는 3가지 변수 범위(level of scope)가 있다. Class Level Scope for instance variables inside a class. Method Level Scope for local variables (including parameter variables) inside a method. Block Level Scope for loop variables and other local variables defined inside of blocks of code with { }. 지역 변수(Local variables)는 .. 2024. 3. 26.
[자바기초.026] 문자열 비교하기(Comparing String) [자바기초.026] 문자열 비교하기(Comparing String) 1. 문자열이 같은지 비교 (String Equality) equals() 메소드는 두 개의 객체(object)가 같은지 비교하는 명령어 이다. 문자열(String)은 객체이기 때문에, 자바에서는 두 개의 문자열이 서로 같은지 비교할 때 equals() 메소드를 사용한다. 특히, 문자열을 equals()메소드로 비교하게 되면 문자열의 음절 하나씩 같은지 비교하고 또한 음절의 순서도 비교한다. 그래서 자바에서는 문자열이 서로 같은지 정확하게 비교하려면 equals()메소드를 사용하는 것이 맞다. 두 개의 객체를 비교하는 데에 연산자 == 을 사용하게 되면, ==은 두 개의 객체 변수가 같은 객체를 가리키고(refer)있는지 여부를 알려준다.. 2024. 3. 24.
[자바기초.025] Simplifying Boolean Using De Morgan's Law [자바기초.025] Simplifying Boolean Using De Morgan's Law 1. 논리 부정 연산자(negation) ! 논리 부정 연산자(negation)는 " ! " 로 사용하며, !(true) = false, !(false) = true와 같이 참과 거짓을 반대로 만든다. 그리고 이런 문장이 있다고 가정하자. "나는 고등학교에 있는 선생님이다." 이 문장에 !(negation) 논리 뷰정 연산자를 사용한다면, "나는 고등학교에 있는 선생님이 아니다" 라고 표현할 수 있다. 그런데, "나는 고등학교에 있는 선생님이 아니다"라는 말은 좀 모호한게, "나는 고등학교가 아니고 다른 중학교나 초등학교를 말하는 건지?", 또는 "나는 고등학교에 있는건 맞는데, 선생님이 아니라는 건지?" 두 .. 2024. 3. 23.
[자바기초.024] substring(),toUpperCase(),toLowerCase(),trim() [자바기초.024] substring(),toUpperCase(),toLowerCase(),trim() 1.1 substring() substring()은 문자열을 자르는 명령어 입니다. 1.2 substring() 메소드 사용법 substring() 메소드는 다음과 같이 2가지 형태로 사용할 수 있습니다. substring(int startIndex) 예제 코드 HTML 삽입 미리보기할 수 없는 소스 substring(int startIndex, int endIndex) 예제 코드 HTML 삽입 미리보기할 수 없는 소스 2.1. toUpperCase() 문자열을 모두 대문자(Upper case)로 변환하는 명령어 입니다. 2.2. toUpperCase() 사용법 HTML 삽입 미리보기할 수 없는 소스 .. 2024. 3. 22.
[자바기초.023] 재귀함수 코딩 연습문제 [자바기초.023] 재귀함수 코딩 연습문제 -링크: https://codingbat.com/java/Recursion-1 *문제의 정답은 제일 아래 "더보기" 클릭하시면 확인 가능합니다. [문제1] 아래의 코드에서 "write code here" 부분을 코딩하여, findSum 메소드를 완성하세요. 이 메소드는 변수 n 값과 크기가 같거나 작은 양의 정수의 합을 리턴하는 재귀 메소드 입니다. 예를 들어 findSum(3)은 1+2+3 = 6, 즉 6을 리턴합니다. 아래 예제 코드는 15를 리턴해야 합니다. (Replace the “write code here” below with the code to complete the findSum method. The method should take the su.. 2024. 3. 20.
[자바기초.022] 재귀 탐색&정렬(Recursive Searching and Sorting)) [자바기초.022] 재귀 탐색&정렬(Recursive Searching and Sorting) [1] 재귀 이진 탐색(Recursive Binary Search) 1.이진 탐색(Binary Search) 선형 탐색(Linear search)은 배열이나 리스트에 저장된(in order) 데이터를 하나씩 비교하면서 천천히 원하는 데이터를 찾는 알고리즘 입니다. 이진 탐색(Binary search)는 선형 탐색보다 더 빠르게 데이터를 찾는 방법으로서, 정렬된 데이터의 가장 가운데 위치한 것부터 데이터 크기를 비교하여, 비교대상의 절반을 버려가면서 원하는 데이터를 찾는 알고리즘 입니다. Binary search only works on sorted data. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입.. 2024. 3. 20.
728x90
반응형