전체 글(78)
-
객체지향
객체들의 모임으로 파악하고자 하는 것 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있음 객체지향 관점에서의 서점 책을 관리하는 것은? 손님을 관리하는 것은? 돈을 관리하는 것은?
2024.03.26 -
선택 정렬
가장 작은 요소를 찾아서 가장 앞으로 옮기는 정렬 기준 요소와 뒤의 나머지 요소를 다 확인하여 교체 한 턴이 끝나면 가장 앞의 요소는 정렬되어 있는 상태 import java.util.Arrays; public class SortExam { static void swap(int[] arr, int a, int b){ int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } public static void selectSort(int[] arr){ for (int i = 0; i < arr.length-1; i++){ int min = i; //가장 작은 인덱스 값 for(int j = i + 1; j < arr.length; j++){ if(arr[j] < arr[m..
2024.03.21 -
버블 정렬
인접한 두 요소를 비교하여 정렬 한 턴이 끝나면 마지막 요소는 정렬되어 있는 상태 import java.util.Arrays; public class SortExam { static void swap(int[] arr, int a, int b){ int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } //버블 정렬 구현 메소드 public static void bubbleSort(int[] arr) { for (int i = 0; i arr[j+1]){ swap(arr, j, j+1); } } System.out.println(i..
2024.03.21 -
재귀함수를 이용한 유클리드 호제법(최대 공약수)
유클리드 호제법 두 양의 정수의 최대공약수를 찾는 효율적인 방법 유클리드 호제법의 두가지 방법 뺄셈을 이용 : 두 수 중 큰 수에서 가장 작은 수를 뺀다. 이 과정을 두 수가 같아질 때까지 반복한다. 최종적으로 남은 수가 두 수의 최대공약수이다. 나눗셈을 이용 : 두 수 a와 b(a > b)가 있을 때, a를 b로 나눈 나머지를 구한다. 그 다음 b와 이 나머지의 최대공약수를 구한다. 이 과정을 나머지가 0이 될 때까지 반복한다. import java.util.Scanner; class GCDCalculator { //--- 두 정수 x와 y의 최대공약수(GCD)를 재귀적으로 계산합니다 ---// static int calculateGCD(int x, int y) { if (y == 0) return x..
2024.03.21 -
재귀함수와 꼬리재귀
재귀함수 자기 자신을 호출하는 함수 종료조건이 필수적으로 필요하다 import java.util.Scanner; public class FactorialCalculator { //재귀함수 static int factorial(int num) { if (num > 0){ return factorial(num-1) * num; } else{ return 1; //0!은 1이다. } } //for문으로 구현한 함수 static int factorialForGrammar(int num) { int result = 1; if (num > 0){ for(int i = num; i < 0; i--){ result *= num; } }else { result = 1; } return result; } public st..
2024.03.21 -
큐
선입선출 큐의 중요 키워드 enQueue : 큐의 뒷쪽에 새로운 요소 추가 deQueue : 큐의 앞쪽에서 요소를 제거하고 반환 peek : 큐의 앞쪽에서 요소를 제거하지 않고 반환 front : 현재 반환해야되는 요소을 가르키는 배열의 인덱스 rear : 마지막 요소의 다음 위치를 가리키는 인덱스 count : 현재 큐에 저장된 요소의 개수 public class MyQueue { private int[] queueArray;//큐 private int front;//큐의 맨 앞 값의 인덱스 private int rear;//큐 맨 뒤 값의 다음 인덱스 private int capacity;//큐최대용량 private int count;//큐에 저장된 데이터의 수 public MyQueue(int ca..
2024.03.21