일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- css
- Til
- 자바
- 배열
- 메서드
- 이진 탐색(binary search)
- 회고
- 코딩
- HTML
- GIT
- aop
- 정렬 알고리즘(sort algorithm)
- Spring
- wil
- 면접(java
- 개발자 취업
- 자료구조
- 코딩문제
- 99클럽
- Java
- 프로그래머스
- github
- 코딩공부
- ArrayList
- Entity
- Grafana
- CS
- cs 공부)준비
- 코딩테스트 준비
- 항해99
- Today
- Total
목록Til (84)
hayu's 개발 일지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b6FJ8o/btsHA0SG6XC/59KwVw1ZW8nvV0xlZW8MvK/img.png)
학습 키워드- Vector VS ArrayList 공부한 내용Vector VS ArrayList Vectorimport java.util.Vector;List 인터페이스를 구현한 클래스이다.객체들을 삽입, 삭제, 검색할 수 있는 컨테이너 클래스이다.필요에 따라 크기를 동적으로 조절할 수 있는 동적배열이다.동기화(Thread Safe) 되어있으며, 한번에 하나의 스레드만 벡터의 메소드 호출 가능하다.내부적으로 여러개의 스레드가 접근할 때 데이터 안정성을 위해 한개의 스레드씩 순차적으로 처리할 수 있도록 동기화되어 있다.→ 안정성이 보장하는 만큼 일을 많이 처리한다는 의미이며, 메모리를 많이 사용한다.List 인터페이스 상속을 받는다.ArrayListimoprt java.util.ArrayList;컬렉션 프..
학습 키워드- 스레드(Thread) 공부한 내용스레드(Thread)운영체제에서 스레드는 프로세스 내부에서 실행되는 작은 작업 단위이다. 스레드는 프로세스의 실행 흐름을 구성하는 단위로, 하나의 프로세스는 내부에 여러개의 스레드가 포함될 수 있다.스레드는 운영체제의 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령어의 가장 작은 시퀀스이다. 또한, 하나의 프로세스는 하나 이상의 스레드를 갖고 있다.⇒ 프로세스는 독립적인 특성을 가지고 있다고 하였다. 이러한 프로세스가 같은 일을 처리하기 위해 동일한 프로그램을 여러개의 프로세스로 만들게 되면, 그만큼 메모리를 차지하고, 그 외 에서 CPU에서 할당받는 자원이 중복되어 할당 받게 될 것이다. 따라서 중복되는 자원의 낭비를 줄일 필요성이 있고, 중복..
학습 키워드- Vector 공부한 내용VectorVector은 ArrayList와 같이 List 인터페이스를 상속받는 컬렉션 프레임워크이며, 사용법은 ArrayList와 크게 다르지 않다.ArrayList와 동일한 구조를 가지며 배열의 크기가 늘어나고, 줄어듬에 따라서 자동으로 크기가 조절이 된다.Vector의 특이한 점이라면 항상 동기화되어있고 Collection 프레임워크에 없는 메서드들을 사용이 가능하다.⇒ 멀티 스레드가 동시에 이 메서드를 실행할 수 없고, 하나의 스레드가 실행을 완료해야만 다른 스레드들이 실행할 수 있다. 그래서 멀티 스레드 환경에서 안정하게 객체를 추가하고 삭제할 수 있다.하지만 동기화라는 특징이 있어 스레드가 아닌 환경에서는 거의 사용이 되지 않는다. 그리고 항상 동기화되므로..
학습 키워드- Hash 공부한 내용ArrayList는 내부 인덱스를 이용하여 검색이 한번에 이루어지기 때문에 빠른 검색 속도를 보장하는 반면 데이터의 추가/삭제시 많은 데이터가 밀리거나 당겨지기 때문에 많은 시간이 소요된다. LinkedList는 추가/삭제시 인근 노드들의 참조값만 수정해 줌으로써 빠른 처리가 가능하지만 데이터를 검색할 경우 해당 노드를 찾기 위해 처음부터 순회 검색을 해야하기 때문에 데이터의 수가 많아질수록 효율이 떨어지는 구조이다.→ 이러한 한계를 극복하기 위해서 제시된 방법이 Hash이다.Hash해시(Hash)는 입력 데이터를 고정된 데이터로 변환된 값을 말한다. 다른 말로 해시 값(Hash Value), 해시 코드, 체크섬 이라고도 한다.이러한 해시는 ‘해시 함수’에 의해서 얻게 ..
학습 키워드- HashSet 공부한 내용HashSetHashSet은 Set 인터페이스에서 지원하는 구현 클래스이다. → Set의 특징을 상속받는다.Set 은 Key의 중복을 허용하지 않고, 키로 null을 허용하지 않는다. 순서 없이 Key로만 데이터를 저장한다. / 만약, 요소의 저장 순서를 유지해야한다면 LinkedHashSet 클래스를 사용하면 된다.여기에서 Key는 요소를 말한다.Set의 가장 큰 장점은 중복을 자동으로 제거해준다는 것이다.Set은 비선형 구조이기 때문에 순서가 없다. 즉, 인덱스가 존재하지 않는다. 값을 추가하거나 삭제할 때는 그 값이 Set 내부에 있는지 검색 후에 추가하거나 삭제를 해야하기 때문에 List 구조에 비해 속도가 느리다.HashSet 변수 선언HashSet set..
문제 설명당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2번) 폰켓몬을 선택첫 번째(3..