알고리즘

    [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

    [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. 개발자는 어떤 문제를 해결할 수 있는 능력을 업으로 하기 때문에, 이를 평가 하기 위해 자료구조와 알고리즘을 성능이 좋은 코드로 작성할 수 있느냐!를 검증하..

    [colab] 6. 머신러닝

    [colab] 6. 머신러닝

    이제 다음에 다룰 데이터(Iris 데이터와 Titanic 데이터)부터는 실제로 우리가 알고리즘을 사용하여 데이터에 대한 가설을 검증하는 등의 과정을 거칠 것이다. 그전에 머신러닝에 대해 간단히 개념을 짚고 넘어가야겠다. 우선, 현재 데이터 처리가 원초인? 분야에서 많이 거론되는 분야에 대해 적어보겠다. - 인공지능(AI) : 사람의 지능을 모방하여, 사람이 하는 것과 같은 복잡한 일을 할 수 있도록 기계를 만드는 것 - 머신러닝 : 기본적으로 알고리즘을 이용해 데이터를 분석 및 학습하며, 학습한 내용을 기반으로 판단이나 예측하는 것 - 딥러닝 : 인공신경망에서 발전한 형태의 인공지능. 머신러닝 중 하나의 방법론 머신러닝은 데이터(Data)를 기반으로 (알고리즘을 이용해) 패턴(Model)을 학습하여 결과..