일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 현대암호
- class
- BufferedWrite
- 자료구조
- 자동 형변환
- 암호론
- 객체지향
- bubble-sort
- HTML
- 재귀호출기본
- 연결된 예외
- 객체
- 프로그래밍
- 백준 알고리즘
- 예외처리
- java
- try&catch
- LANG
- 형변환 연산자
- jvm
- lang package
- 백준
- 알고리즘
- 2884
- 공개키 암호
- 디렉티브
- JSP
- 클래스 패스
- 소수판정
- OOP
- Today
- Total
목록컴퓨터 과학/자료구조 (6)
코드일기장

배열은 데이터를 묶어 놓은 것으로 구조가 간단하고 데이터가 연속적으로 존재한다. 사용하기도 쉽고 데이터를 읽어 올 때는 걸리는 시간이 가장 빠르다는 장점도 가지고 있다. 배열은 장점만 가지고 있는 것은 아니다. 단점으로는 1. 크기를 변경할 수 없다. 크기를 변경할 수 없으므로 만약 배열 저장공간이 부족할 시 더 큰 배열을 생성하고 공간이 부족한 배열의 값들을 복사하고 참조를 변경해야 한다. 이런 과정으로 프로그램 동작 시간이 오래 걸린다. 충분히 큰 크기의 배열을 미리 생성시켜도 메모리가 낭비된다. 2. 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸린다. (추가&삭제에 단점이 많음) 차례대로 데이터를 추가하고 배열의 마지막 위치에 있는 데이터들은 삭제하기 쉽고 빠르지만, 배열의 중간에 데이터를 ..

ArrayList는 컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스일 것이다. ArrayList는 List인터페이스를 상속받은 클래스이다. List인터페이스로부터 상속받았기 때문에 데이터의 저장 순서가 있고 중복을 허용한다는 특징이 있다. ArrayList는 Vetor를 개선해서 만든 것으로 Vector와 구현원리와 기능적인 측면이 매우 흡사하다. ArratyList는 Object배열을 이용해서 데이터를 순차적으로 저장한다. 흔히 사용하는 배열과 똑같다고 생각하면 된다. 예를 들어 Integer 5를 저장하면 Object배열 index0에 저장되고 다음 숫자는 index1... 이런 식으로 순서대로 쭉 저장된다. 배열과 ArrayList의 차이점은 배열은 한번 크기를 지정하면 크기를 다시 수정을 못..

ListInterface(리스트 인터페이스)는 대표적인 선형 자료구조로 순서가 있고 중복을 허용한다. List는 우리가 흔히 사용하는 배열과 매우 유사하다. 배열을 쓸 때 배열의 길이를 10으로 선언하고 10 이상의 인덱스에 값을 넣으면 IndexOutofBoundsException이 발생한다. 이런 단점을 보완하여 List를 통해 '동적 크기'를 갖는다. 마치 배열처럼 사용할 수 있다. 배열과 List 인터페이스의 공통점과 차이점은 무엇일까? [공통점] 1. 동일한 특성의 데이터를 묶는다. 2. 반복문내에 변수를 이용하여 하나의 묶음 데이터들을 접근할 수 있다. [차이점-배열] 1. 처음 선언한 배열의 크기(길이)는 변경할 수 없다. 이것을 정적 할당(static allocation)이라고 한다. 2...

'자료구조' 자료구조는 Data Structure라고 한다. 보통 알고리즘 문제를 푸는데 많이 사용되며 알고리즘과 뗄 수 없는 관계이다. 어떤 알고리즘 문제를 풀기 위해 문제를 해석하고 다음으로 자료구조를 선택한다. 선택한 자료구조에 따라 더욱 효율적으로 알고리즘 문제를 풀 수 있다. 많은 프로그래밍 언어들은 기본적인 자료구조들을 라이브러리로 제공해준다. 자바에서의 대표적인 자료구조는 Collection이다. 컬렉션 (collection) - 여러 객체(데이터)를 모아 놓은 것 프레임웍(framework) - 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 프레임웍(collections framework) - 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식 - 컬렉션을 쉽고 편리하게 다룰 ..

배열 요소의 최댓값 어느 배열에 요소중 제일 큰 값을 찾는 알고리즘에 대해 알아보자 🔑 코드 더보기 import java.util.Scanner; public class Hello { static int N=0; public static void main(String[] args) { Scanner sc=new Scanner(System.in); do { System.out.print("요솟수: "); N=sc.nextInt(); }while(N

배열과 관련된 정렬이다. 정렬은 물건을 크기순으로 나열하는 것을 의미한다. 예를 들면, 도서관에 가보면 책들이 주제, 제목, 저자 또는 발간 연도순으로 정렬해 놓은 것을 볼 수 있다. 이러한 정렬 덕분에 우리는 도서관에서 내가 읽고 싶은 책이 어디에 있는지 유추할 수 있고 빠르게 찾아낼 수 있다. 정렬은 컴퓨터 공학 분야에서 가장 기본적이고 중요한 알고리즘이다. 특히 일상생활에서도 많이 쓴다. 네이버페이로 쇼핑을 한다고 생각해보자 보통 사람들은 평점을 내렴 차순으로 정렬해 별점이 가장 높은 물건이 무엇인지 알고 싶어 할 것이다. (혹은 제일 싼 물건) 이처럼 정렬은 제일 많이 쓰이고 제일 중요한 알고리즘이다. 버블 정렬을 깊게 알아보기 전, 버블 정렬 관련 유튜브 영상을 한 개 올려주겠다. https:/..