알고리즘 3

이진 탐색

이진 탐색 범위를 반씩 좁혀가며 탐색하는 이진탐색 데이터를 확인할 일이 있을 때 그 데이터를 하나씩 확인하여 처리할 때 순차 탐색을 통해 확인하였습니다. 이렇게 순차적으로 확인하면 만약 데이터가 맨 끝에 있을 경우 있기에 순차 탐색의 시간복잡도는 O(N)이 입니다. 그에 반해 이진 탐색은 정렬되어 있지 않을 땐 사용할 수 없지만 데이터가 정렬되어 있다면 매우 빠르게 데이터를 찾을 수 있습니다. 이진 탐색은 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 특징이 있습니다. 이진 탐색은 시작점, 끝점, 중간점 세 개의 변수를 사용하게 됩니다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾게 됩니다. 아래는 재귀 함수로 구현한 이진 탐색 소스코드입니다. import jav..

알고리즘 2022.01.16

문자 찾기

알고리즘 스터디를 하면서 스스로 부족함을 많이 느꼈다. 강의의 도움을 받고자 인프런에 자바 기반의 알고리즘 강의를 찾았다. 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의 자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성 www.inflearn.com 첫번째 문제라 간단하게 문자 찾기였다. 한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 찾으면 됐다. import java.util.Scanner; public class Find..

알고리즘 2021.12.30