반응형 분류 전체보기14 Binary Search(+ Lower Bound, Upper Bound) Binary Search(이진탐색) 정렬된 자료를 절반씩 나눠가며 특정 원소의 위치를 찾는 탐색 알고리즘. 시간 복잡도 O(log N). 1. 기본 문제 오름차순으로 정렬된 nums 정수 배열과 찾고자하는 값 target이 주어진다. target의 인덱스 번호를 찾아 반환하고 nums에 target 값이 없을 경우, -1을 반환한다. public int solution(int[] nums, int target){ int left = 0; int right = nums.length -1; while(left 2024. 3. 19. 컴퓨터 구조(Computer Science)란? (하드웨어의 CPU, 기억장치, 입출력장치) 컴퓨터구조 컴퓨터 과학에서 컴퓨터 시스템의 기능(functionality), 조직(organization), 구현(implementaion)에 대한 법칙과 방법을 통칭하며 컴퓨터가 동작하는 방식을 기반으로, 프로그래밍이 동작하는 것이다. * 폰노이만 구조 - 최초의 프로그램이 내장된 컴퓨터 방식으로, 하드웨어적으로 전선을 다시 배치할 필요 없이 소프트웨어만 교체해 다른 연산을 수행할 수 있다. 즉, 먼저 연산의 수행과 관련된 명령어와 연산에 필요하거나 결과로 나온 데이터를 저장장치(메모리)에 보관하고 순차적으로 메모리에 저장된 내용을 꺼내 지시대로 연산 수행하는 방식이다. 오늘날의 모든 컴퓨터는 이 방식을 따른다. 컴퓨터 시스템 하드웨어(Hardware)와 소프트웨어(Software)로 구성되어 있다. .. 2024. 3. 17. [컬렉션 프레임웍] ArrayList와 LinkedList ArrayList List 인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다. Object배열을 이용해 데이터를 순차적으로 저장하고 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성하여 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음 저장된다. ArrayList의 요소를 삭제하는 경우, 삭제할 객체의 바로 아래에 있는 데이터를 한 칸씩 위로 복사해서 삭제할 객체를 덮어쓰는 방식으로 처리한다. ==> 배열에 객체를 순차적으로 저장할 때와 객체를 마지막에 저장된 것부터 삭제하면 데이터를 옮기지않아도 되어 작업시간이 짧다. but, 배열의 중간에 위치한 객체를 추가, 삭제하는 경우, 다루는 데이터의 개수가 많을 수록 작업시간이 오래 걸린다. ArrayList li.. 2024. 3. 5. [컬렉션 프레임웍] 컬렉션 프레임웍의 정의와 핵심 인터페이스 컬렉션 프레임웍 - 데이터 군을 저장하는 클래스들을 표준화한 설계를 뜻한다. 라이브러리는 공통으로 사용될만한 유용한 기능을 모듈화하여 제공하고, 프레임웍은 단순히 기능뿐만 아니라 프로그래밍 방식을 정형화 하여 프로그램의 개발 생산성을 높이고 유지보수를 용이하게 한다. 핵심 인터페이스 - Map과 Collection 인터페이스를 정의할 수 있는 List, Set 인터페이스가 있다. List 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다. ex)대기자 명단 구현클래스로는 ArrayList, LinkedList, Stack, Vertor 등이 있다. 메서드 void add(int index, Object element), boolean addAll(int index, Collection c) : 지정.. 2024. 3. 4. 이전 1 2 3 4 다음