이분 탐색(Binary Search) 알고리즘
·
JAVA/알고리즘
개요이분 탐색(Binary Search) 알고리즘 간단하게 알아보기이분 탐색이란이분 탐색은 정렬된 데이터에서 특정 값을 찾는 데 사용되는 알고리즘으로, 시간 복잡도가 O(log n)인 매우 효율적인 탐색 방법입니다. 배열을 두 부분으로 나누며 탐색 범위를 점차 좁혀가는 방식으로 동작합니다.이분 탐색의 특징정렬된 데이터에서만 사용할 수 있습니다.탐색 속도가 빠르며, 특히 데이터의 크기가 커질수록 유리합니다.순차 탐색(Linear Search)보다 훨씬 적은 연산으로 원하는 데이터를 찾을 수 있습니다.이분 탐색의 원리배열의 중간값을 기준으로 찾고자 하는 값과 비교찾는 값이 중간값보다 작으면 왼쪽으로, 크면 오른쪽으로 탐색 범위 조정탐색 범위를 반복적으로 절반으로 줄여 나가며 찾고자 하는 값을 탐색이분 탐색의..
Codility 간략 소개
·
JAVA/알고리즘
1. Codility란?A, https://codility.com/tour/기업 대상 서비스이 서비스는 주로 구직자의 코딩 실력을 검증하고자 할때 사용됩니다. B, https://codility.com/programmers/프로그래머 대상 서비스 무료 서비스로 알고리즘을 공부하고 문제풀이에 도전해 보고 싶은 분을 위한 것입니다. 2. 프로그래머 대상 서비스 - 알고리즘 테스트 메인화면에서 스크롤을 조금 내리면,아래 화면을 볼 수 있다.위 화면에서 [See All Lessons] 버튼 클릭 여러가지 Lesson 목록이 보인다.Lesson 1 Iterations아마도 반복문 관련 문제를 제공할것같다. BinaryGapSTART 1. 문제 출제 영역( only 영어.... )- 문제에 대한 설명 및 조건2. ..
[JAVA] 소수 구하기 + 실행시간 단축
·
JAVA/알고리즘
Contents소수(Prime Number) : 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수 Contents 첫번째, n 보다 작은 정수를 나누어 보며 소수 구하는 법 두번째, 1번 방법 마법의 코드 한줄을 통해 실행 시간 단축하는 법 세번째, n 보다 작은 소수를 나누어 보며 소수 구하는 법 첫번째, n 보다 작은 정수를 나누어 보며 소수 구하는 법 public class prime { public static void getPrime(int num){ boolean flag; //소수 판별을 위한 true/false int cnt = 0; //소수의 총 개수를 확인하기 위한 변수 for(int i=2; i
선형 큐(Linear Queue)
·
JAVA/알고리즘
- FIFO - First In First Out(선입선출)- 인큐(EnQueue)를 통해 자료 입력, 디큐(DeQueue)을 통해 자료 출력 * 매표소, 가장 먼저 줄서있는 사람에게 표를 먼저 제공한다. * 선형 큐 알고리즘은 Rear가 배열의 끝에 닿아 있으면, 앞에 배열의 빈 부분(Q[0])이 남아 있어도 더이상 삽입연산을 하지 못한다.메모리를 효율적으로 관리하지 못함. 이러한 문제점을 해결하기 위해 원형 큐가 만들어졌다. JAVA 소스코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778..
스택(Stack) 알고리즘(JAVA)
·
JAVA/알고리즘
- 제한적으로 접근할 수 있는 나열 구조(접근 방법은 언제나 목록의 끝에서만 가능)- 선형 구조 LIFO - Last In First Out(후입선출)- 푸쉬(push)를 통해 자료 입력, 팝(pop)을 통해 자료 출력 * 프링글스, 통 안에 가장 나중에 들어간(push) 감자칩부터 먹게 된다(pop). 스택 활용 예- 역순 문자열 만들기- 수식 괄호 검사- 수식 후위표기법으로 변환, 후위표기 수식의 연산 JAVA 소스코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848..