알고리즘
-
[Java][알고리즘] LinkedList알고리즘 2021. 1. 11. 15:50
자료들을 반드시 연속적으로 배열시키지 않고 링크(link)를 통해 리스트를 형성 노드(node)는 데이터를 담는 그릇, 링크(link)는 리스트의 순서를 유지할 수 있게 해주는 연결고리의 구조를 가지고있다 스택, 큐, 해시 등의 기본이 됨 장점 삽입, 삭제 작업이 용이하다 기억공간이 연속적이지 않아도 저장이 가능하다. 메모리를 효율적으로 사용 데이터 재구성 용이 대용량 데이터를 처리하는데 적합 단점 접근속도가 느리다.(포인터를 찾아가는 시간이 필요하기 때문에 배열에 비해 접근속도가 느림) 중간 노드의 연결이 끊어지면 그 다음 노드를 찾기 힘들다. 구성 및 사용방법이 까다로움 배열 vs 링크드리스트 데이터의 삽입/삭제가 거의 없고, 데이터 접근이 빈번하게 이뤄질 경우는 배열이 유리함. 반면 데이터의 삽입/..
-
int 타입으로 21억의 중간값을 구하시오알고리즘 2021. 1. 7. 15:57
정수형 및 값의 범위가 있는 타입의 중간값을 구할때 실수하는 것이 있다. int mid = (a + b) /2 이 경우 a 와 b 가 작은값이면 상관없지만 int 범위 2,147,483,647 가까이 되는 숫자 21억 등의 숫자를 계산할때는 위와 같은 숫자 계산은 오버플로우가 난다. 그러므로 다음과 같이 수정해야 하다. int start = 2_000_000_000; int end = 1_000_000_000; int mid = start + (end - start) / 2;
-
배열 값 for 문 순환 하면서 몇번째 순환할때 배열값이 작아지는지 배열 재생성알고리즘 2020. 12. 31. 23:14
public int[] solution(int[] prices) { int len = prices.length; // 5 int[] answer = new int[len]; int i, j; for (i = 0; i prices[j]) break; } } return answer; } 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 ..
-
두개의 array 에서 빠진 요소 찾기. 중복 array 고려알고리즘 2020. 12. 28. 15:39
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return [leo, kiki, ..