알고리즘
[Concept/Algorithm] 이분/이진 탐색 (Binary Search)
이분 탐색 알고리즘은 정렬된 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법입니다. 이분 탐색 알고리즘은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘입니다. 변수 3개 시작, 끝, 중간 값(start, end, mid)을 사용하여 탐색합니다. 찾으려는 target과 중간 위치 값 mid를 반복 비교하여 원하는 데이터를 찾아가는 과정입니다. 시간복잡도는 단계마다 범위를 절반으로 줄여나가므로 O(logN) 입니다. ex) 32개 데이터-> 16개 데이터-> 8개-> 4개 이분 탐색은 반복문과 재귀 호출 방식으로 구현할 수 있습니다. public classBinary_Search { //재귀 호출 방식으로 구현 private static intbinary_search_recu..
[JAVA] 프로그래머스 - 전화번호 목록 LV2
문제 이해 및 제한 사항 프로그래머스의 해시 문제, 전화번호 목록 LV2 https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 매개변수로 주어지는 전화번호 목록에서 어떤 번호가 다른 번호의 접두사인 경우가 1개라도 있으면 false를, 그렇지 않다면 t..
[Concept] 자료구조와 알고리즘
# 자료구조와 알고리즘 [자료구조] Data Structure, 데이터 구조 효율적인 데이터 관리의 예 학생에게 학년&반&번호를 부여하는 것 우편번호 대표적인 자료구조 : 배열, 스택, 큐, 링크드 리스트, 해쉬테이블, 힙 [알고리즘] 어떤 문제를 풀기 위한 절차와 방법 사람마다 문제를 다르게 푸는데, 이 풀이 방법들 중 좋은 알고리즘의 기준은 시간과 공간! 즉, 메모리 공간과 시간 복잡도를 고려하는 것이다. 어떤 자료구조와 알고리즘을 쓰느냐에 따라, 성능이 달라지기 때문에 "자료구조"와 "알고리즘"이 중요한 것. Q. 코딩테스트를 왜 하나요? A. 개발자는 어떤 문제를 해결할 수 있는 능력을 업으로 하기 때문에, 이를 평가 하기 위해 자료구조와 알고리즘을 성능이 좋은 코드로 작성할 수 있느냐!를 검증하..