목록전체 글 (93)
julia coding story
1. HashMap이란? Map은 키(key)와 값(value)으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다. 여기서 키(key)와 값(value)은 모두 객체이다. 특징 - 값(value)은 중복 저장될 수 있지만 키(key)는 중복 저장될 수 없다. - 만약 기존에 저장된 키(key)와 동일한 키(key)로 값을 저장하면 기본의 값이 삭제되고 새로운 값으로 대 체된다. - 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다. - HashMap은 내부에 'key'와 'value'을 저장하는 자료구조를 가지고 있다. - 해시 함수를 통해 'key'와 'value'이 저장되는 위치를 결정하여 사용자는 그 위치를 알 수 없고 삽입되 는 순서와 들어있는 위치 또한 관계가 없다...

문제는 이해하기 쉬워요. 입력과 출력 예시를 보면 중복체크를 해야해하니 Hashset 를 이용해볼게요. 1. 메모리 1332ms pritnln을 사용해서 각자 계속 출력시키면 1332ms가 나온다. 근데 여기서 그냥 append 를 사용해 거기에 넣어서 한번에 출력시키면 메모리가 줄더라고요. 그게 2번입니다. import java.util.Set; import java.util.ArrayList; import java.util.HashSet; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; public class Main { p..
1. BufferedReader (vs Scanner) - 버퍼를 이용해서 읽는 함수 - 입출력이 효율적으로 좋아짐(vs Scanner에 비해 상대적으로 빠름) ( 하드디스크는 원래 속도가 엄청 느리고 키보드나 모니터와 같은 외부장치와 데이터 입출력은 생각보다 시간이 걸리는 작입이다. 버퍼링 없이 키보드가 눌릴때마다 눌린 문자의 정보를 목적지로 바로 이동시키는 것보다 중간에 메모리 버퍼를 둬서 데이터를 한데 묶어서 이동시키는 것이 보다 효율적이고 빠르다.) - 엔터만 경계로 인식하고 받은 데이터가 String으로 고정된다. (vs Scanner: 띄어쓰기, 엔터를 경계로 값 인식) - integer.parseInt() 형변환을 통해 사용 BufferedReader 사용방법 import java.io.Bu..
1. LinkedList 장점 - 데이터의 추가, 삭제를 위치에 관계없이 빠른 시간 수행 할 수 있다. (리스트 내에서 자료의 이동이 필요 없음) - LinkedList 는 순서대로 늘어선 것이 아니라 자료의 주소 값으로 서로 연결되어 있는 구조를 하고 있다. - 순차접근만 가능하다. - 무한 개수의 자료를 삽입할 수 있다. - AbstractList를 상속하지 않고 AbstractSequentialList를 상속하고 있다. 단점 - 포인터의 사용으로 인해 저장 공간의 낭비가 있다. - 알고리즘이 복잡하다. - 특정 자료의 탐색 시간이 많이 소요된다. - 자료의 최대 개수에 영향을 받지 않는다. 불러오기 import java.util.LinkedList; LinkedList 선언 LinkedList li..

백준 1158번 문제는 아래와 같다. 이 문제를 풀어보자면 리스트 형태로 했을때 list1[2] 즉, 3번째 자리에 있는것을 뽑아서 출력시켜서 다른 다른 list2 에 넣은후 출력하라는 말이다. 여기까지 생각해봤을때 결국 list1 에 있던 3번째 자리마다 list2에 넣는 순간 삭제하고 삭제한 상태의 list1에서 3번째 자리를 뽑고 삭제하는것을 반복해야한다. 그러한 방식을 생각해봤을때 JAVA에서 적당한 클래스는 큐(Queue)이다. 그렇다면 큐(Queue)란 무엇일까? Queue의 사전적 의미는 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미한다. 큐클레스는 줄을 지어 순서대로 처리되는것이다. 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First I..