자료구조/선형자료구조(9)
-
연결리스트
+ List와 ArrayList 차이? : List(=인터페이스; 클래스 내 모든 메서드가 추상메서드인 클래스), ArrayList(=클래스) ex) List list1 = new ArrayList(); (O) List list2 = new LinkedList(); (O) ex) ArrayList list3 = new ArrayList(); (O) ArrayList list4 = new LinkedList(); (X) 1. 단순 연결리스트 - 노드 추가/삭제 시, 맨 뒤에 동작 class Node { int data; Node next; Node() {} Node(int data, Node next) { this.data = data; this.next = next; } } class Lin..
2023.02.18 -
연습문제_해시맵
- 검색을 많이 필요할 때. 상황에 맞는 해시 함수가 존재할 때. 1번. 해시 테이블을 이용한 수 찾기 /* 주어진 첫 번째 배열을 이용해 해시 테이블을 초기화 한 후, 두번째 배열이 주어졌을 때 해당 배열 내 데이터가 해시 테이블에 있는지 확인 예시) 배열1: 1,3,5,7,9 배열2: 1,2,3,4,5 출력: true, false, true, false, true */ import java.util.Hashtable; public class quiz1 { public static void solution(int[] arr1, int[] arr2) { Hashtable ht = new Hashtable(); for (int i = 0; i < arr1.length; i++) { ht..
2023.02.18 -
해시테이블
- 개념 - 구현 1. 내장 클래스 HashTable import java.util.Hashtable; import java.util.Map; public class hashMap { // 해시 함수 public static int getHash(int key) { return key % 5; } public static void main(String[] args) { // 내장 클래스 Hashtable ht = new Hashtable(); ht.put("key1", 10); ht.put("key2", 20); ht.put("key3", 30); ht.put("key3", 50); // key3에 대한 value는 50으로 갱신 for (Map.Entry item: ht.entrySet()) { Sys..
2023.02.18 -
연습문제_배열
- 데이터 개수가 고정적이고 같은 종류의 데이터 저장. 순서 존재. 값 추가/삭제 번거로움. 1번. 문제: 배열 arr의 모든 데이터에 대해서, 짝수 데이터들의 평균과 홀수 데이터들의 평균 출력 예시) 배열 arr: 1,2,3,4,5,6,7,8,9 결과 => 짝수 평균: 5.0 홀수 평균: 5.0 public class quiz1 { public static void main(String[] args) { int[] arr ={1,2,3,4,5,6,7,8,9}; float sumEven = 0; float sumOdd = 0; int numEven = 0; int numOdd = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] % 2 ==..
2023.02.15 -
배열
- 개념 - 구현 1. 내장 클래스로 // 선형 자료구조 - 배열 package Array; import java.util.ArrayList; import java.util.Arrays; public class array { public static void main(String[] args) { // 1차원 배열 System.out.println("== 1차원 배열 =="); int[] arr = {1,2,3,4,5}; for (int data: arr) { System.out.println("item: " + data); } arr[1] = 100; System.out.println("arr = " + Arrays.toString(arr)); System.out.println("arr = " + ar..
2023.02.15 -
연습문제_큐
- 선입선출 1. 카드섞기 1) 문제 1 ~ N까지의 번호로 구성된 N장의 카드 존재. 1번 카드가 가장 위에 그리고 N번 카드는 가장 아래의 상태로 카드가 순서대로 쌓여있다. 아래의 동작을 카드 한 장만 남을 때까지 반복했을 때, 가장 마지막 남는 카드 번호를 출력 1. 가장 위의 카드 버리기 2. 그 다음 위의 카드는 쌓여 있는 카드의 가장 아래에 다시 넣기 예시) N=4 -> 결과: 4 N=7 -> 결과: 6 2) 구현 import java.util.LinkedList; import java.util.Queue; import java.util.stream.IntStream; public class quiz1 { public static int findLastCard(int N) ..
2023.02.15