전체 글(78)
-
스택
후입선출 스택 구현의 중요 키워드 push : 값을 넣음 pop : 값을 꺼냄 peek : 빼지는 않고 값만 알려줌 top : 현재 가리키고 있는 인덱스 isEmpty : 배열이 비어있는지 확인 isFull : 배열이 꽉 차있는지 확인 public class StackExam { private int[] stackArray; // 스택을 저장할 배열 private int stackCapacity; // 스택의 최대 크기 private int top = -1; // 스택 포인터 public StackExam(int stackCapacity) { this.stackArray = new int[stackCapacity]; this.stackCapacity = stackCapacity; } public bool..
2024.03.21 -
이진 탐색
배열의 중간 요소을 기준으로 원하는 키값이랑 같은지 확인한다. 중간 요소보다 키값이 크면 중간 요소와 마지막 요소의 중간 요소를 찾는다. 중간 요소보다 키값이 작으면 처음 요소와 중간 요소의 중간 요소를 찾는다. 이를 start 변수와 end 변수를 이용하여 start 변수가 end보다 커지면 탐색을 종료하고 그 전에 원하는 키값을 찾으면 키값이 들어있는 배열 요소의 인덱스를 반환한다. 이는 순차 탐색보다 빠르며 시간복잡도는 logN이다. 이진 탐색은 배열이 무조건 정렬이 되어있어야된다. import java.util.Arrays; import java.util.Scanner; public class BinarySearchExam { public static int binarySearch(int[] ar..
2024.03.20 -
순차 탐색, 보초법
순차탐색 - 원하는 값을 찾기 위해서 배열의 첫번째 요소부터 마지막 요소까지 차례대로 모두 확인하는 방법 import java.util.Scanner; public class SearchExam { static int sequentialSearch(int[] arr, int key){ for (int i = 0; i < arr.length; i++) { if (arr[i] == key) return i; // 키와 일치하는 요소의 인덱스 반환 } return -1; // 검색 실패 시 -1 반환 } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("찾고자하는 정수를 입력하세요: ");..
2024.03.20 -
클래스(class)
- 클래스는 기본적으로 도면이라고 생각하면된다 - 클래스를 인스턴스화 하면 객체가 되는 것이다. 클래스 : 자동차를 만드는 도면 객채 : 도면을 가지고 만든 나의 자동차 public class Dog { String breed; int age; String color; public Dog() { //기본 생성자 } public Dog(String breed, int age, String color) { this.breed = breed; this.age = age; this.color = color; } public Dog(String breed, String color) { this.breed = breed; this.color = color; } //메소드 //접근제한자 리턴타입 메소드명 (매개변수들..
2024.03.20 -
다차원 배열의 초기화
1. 첫 번째 방법 int[][] scores = new int[3][4]; 2. 두 번째 방법 int[][] scores = { {90, 80, 77, 60}, // 첫 번째 학생의 점수 {80, 70, 60, 50}, // 두 번째 학생의 점수 {70, 60, 50, 40} // 세 번째 학생의 점수 };
2024.03.20 -
소수 찾기
입력한 정수까지 모두 체킹을 하며 소수를 찾는 방식 import java.util.Scanner; public class ListPrimes { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("정수를 입력하세요: "); int num = sc.nextInt(); int cnt = 0; for (int i = 2; i
2024.03.20