본문 바로가기

알고리즘 공부9

[알고리즘 공부] 이진 탐색 이진 탐색 (Binary Search) 이번에도 내용을 바탕으로 "이진 탐색" 알고리즘에 대해서 알아보도록 하겠습니다. 먼저 이진 탐색은 정렬된 배열에서 특정 요소의 위치를 효율적으로 찾는 검색 알고리즘입니다. 기본 원리는 대상 값을 중앙 값과 비교하여 탐색 범위를 반으로 줄여나가는 것입니다. 일단은 이진 탐색을 본격적으로 알기 이전에 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 순차 탐색(Sequential Search)과 코드를 비교하면서 살펴보도록 하겠습니다. 순차 탐색은 말 그대로 순차로 데이터를 탐색한다는 의미입니다. 리스트 안에 데이터를 하나씩 방문하면서 특정한 문자열과 같은지 검사하므로 구현에 있어서도 비교적 쉬운 편입니다. 순차 탐색에 대한 간단.. 2024. 3. 14.
[알고리즘 공부] 정렬 정렬(Sorting) 이번에는 이전 탐색 알고리즘에 이어서 내용을 바탕으로 "정렬" 알고리즘에 대해 알아보도록 하겠습니다. 우선 정렬(Sorting)이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 의미합니다. 프로그램에서 데이터를 가공할 때 오름 차순 혹은 내림차순 등 다양한 방식으로 정렬해서 사용하는 경우가 있기 때문에 이 알고리즘은 프로그램을 작성할 때 가장 많이 사용되는 알고리즘 중 하나라고 명시되어 있습니다. 그리고 정렬 알고리즘으로 데이터를 정렬하면 다음에 배울 이진 탐색(Binary Search)가 가능해진다고 하네요! 그리고 정렬 알고리즘은 대표적으로 선택, 삽입, 퀵 그리고 계수 정렬 등의 종류가 있는 데, 일단 책의 내용에 따라 이번에는 4개의 정렬 알고리즘에 대한 간단한 설명.. 2024. 3. 13.
[알고리즘 공부] 구현 구현 (Implementation) 에서 제공하는 공부 방법에 따라서 이번에는 "구현"에 대해서 살펴보도록 하겠습니다. 먼저 "구현"이란 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정'이라고 정의되어 있습니다. 이 유형의 문제들은 일반적으로 알고리즘과 자료구조의 복잡한 이론보다는 문제의 조건을 코드로 어떻게 표현할지에 더 초점을 맞추고 있습니다. 즉, 이 유형을 풀기 위해서는 문제를 해결하기 위한 아이디어를 코드로 변환하는 과정에서 세심함과 정확성이 중요합니다. 구현 문제의 유형 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차근차근 직접 수행하는 경우. 예를 들어, 특정 규칙에 따라 문제를 변환하거나, 보드 게임의 규칙을 시뮬레이션하는 등의 문제가 이에 해당 완전 탐색 : 가능한 모든 경우의 .. 2024. 3. 11.
[알고리즘 공부] 그리디(Greedy) Greedy 알고리즘 풀이 2024년 상반기 공고가 시작되었습니다. 그간 작년 12월부터 2월 말까지 대외 활동을 하느니라, 미뤄왔던 코딩 테스트 준비를 위한 알고리즘 공부를 부랴 부랴 다시 시작합니다. 이전과 다른 점은 이제 하고자 하는 의지(?)가 있는 친구들과 함께 준비하기 때문에 이제 자의 반, 타의 반으로 코딩 테스트 공부를 함께 준비할 수 있게 되었습니다. 그래서 이전에 Greedy 알고리즘에 이어서 다시 블로그 글을 작성해봅니다. 참고 : 이코테 (이것이 취업을 위한 코딩 테스트다. with 파이썬) 사용 프로그래밍 언어 : Python 문제 유형 : Greedy 시간이 많이 지나갔기 때문에 복습도 할 겸, 그리디 유형에 대해서 살펴보도록하겠습니다. 그리디 알고리즘은 해석하면 "탐욕스러운" .. 2024. 3. 11.
[알고리즘 공부] 그리디(Greedy) 알고리즘 with GPT 그리디(Greedy) 알고리즘이란 무엇일까? 안녕하세요. 이번 글은 나동빈님의 저서 [이코테]와 Chat GPT를 참고하여 알고리즘 공부 방식 중 첫 번째로 그리디(Greedy) 알고리즘에 대해서 설명하도록 하겠습니다. 그리디 알고리즘이란? 먼저 그리디 알고리즘을 간단하게 표현하면 '당장 좋은 것만 선택하는 그리디'라고 말할 수 있습니다. 이는 현재 상황에서 가장 좋아보이는 선택을 계속해서 하는 것이 특징이며, 각 선택이 부분적으로는 최적일 수 있지만, 전체로 보면 최적이 아닐 수도 있습니다. 다시 말하자면, 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 알게 모르게 제시해줍니다. 글로는 설명이 어려울 수도 있으니, GPT를 통해 생성.. 2024. 1. 1.
[이코테] 유형별 알고리즘 2부 학습 - Step2 "선행 글 (먼저 읽어주세요!)" 2023.12.16 - [코딩 TEST/코테 대비 과정] - [코딩 테스트] 코딩 테스트 준비 (1) [코딩 테스트] 코딩 테스트 준비 (1) 코딩 TEST 어떻게 준비 해볼까? 2023년 8월 31일을 끝으로 학교 연구 계약직을 마치고 취업 블로그를 시작하게 되면서 취업 준비가 어느 덧 약 2개월 정도 되었습니다. 하지만 코딩 TEST를 위한 알고 muns-da2.tistory.com 학습 순서 2 단계 : '이코테' - 유형별 알고리즘 2부 학습 공부 내용 요약 단 계 2 단계 내 용 달 성 구 성 그리디 1 구현 1 DFS 1 BFS 1 정렬 1 이진 탐색 1 다이나믹 1 최단 경로 1 그래프 1 참 고 이것이 취업을 위한 코딩테스트다 with Python 관련 글.. 2023. 12. 28.
[코딩 테스트] 코딩 테스트 준비 (1) 코딩 TEST 어떻게 준비 해볼까? 2023년 8월 31일을 끝으로 학교 연구 계약직을 마치고 취업 블로그를 시작하게 되면서 취업 준비가 어느 덧 약 2개월 정도 되었습니다. 하지만 코딩 TEST를 위한 알고리즘 공부에 대한 방향을 못잡고, 어디서부터 어떻게 시작해야될 지 그리고 어떤 문제들을 풀어보아야 될지 모르는 상황에서 많은 유튜브와 관련 서적 그리고 공부 방법들을 블로그를 운영하게 되면서 접 할 수 있었습니다. 그 중에서 유튜버 '나동빈'님의 코딩 테스트 관련 서적인 '이것이 취업을 위한 코딩 테스트다.' 와 프로그래머스 코딩역량인증(PCCP, PCCE)을 조사하면서 알게 된 ' 취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략 : 파이썬 편' 을 참고하면서 코딩역량인증을 준비할 겸, .. 2023. 12. 16.
[코딩 테스트] 이것이 취업을 위한 코딩테스트다 with 파이썬 코딩 테스트, 어디서부터 그리고 어떻게 준비해야될까? 이제 졸업 혹은 졸업을 앞두신 분들 그리고 개발 관련 취업에 종사하시고 싶은 분들이라면 반드시 놓치지 말아야할 점이 바로 코딩 테스트입니다. 코딩 테스트는 기업/기관에서 채용을 위해 인재를 선발하기 위한 목적으로 시행되는 문제 풀이 시험이라고 이해하시면 됩니다. 이는 다양한 알고리즘 기법에 기반한 문제들이기 때문에 우리는 우선적으로 다양한 유형의 기업 테스트를 통과하기 위해서 기초적으로 알고리즘 공부를 우선적으로 시작 해야합니다. 하지만 막상 코딩 테스트 준비를 하려고 하니, 백준과 같은 플랫폼에는 너무 많은 문제들이 있고, 어디서부터 어떻게 시작해야될지 막막한 것이 문제입니다. 이 글을 쓰고 있는 저도 그런 고민을 하고 있었기 때문에 이를 해결하기 .. 2023. 12. 8.
[코딩 TEST]코딩 TEST를 체계적으로 준비하고 싶다면? - Code tree 어려운 기업 코딩 TEST, 이 문제들을 해결하려면 어떤 알고리즘을 익혀야 할까? 제가 처음 코딩 TEST를 접하게 된 것은 2022 하반기 삼성 코딩 테스트에 응시했을 때입니다. 이때는 제가 한창 논문과 씨름(?) 할때라서... 서류만 통과해보자는 마음으로 삼성 공채에 지원했었는데, 막상 서류에 덜컥 붙어버리니;;; 기쁜 마음과 동시에 큰일났다는 심경으로 지내다가 백준에서 제공해주시는 아주 어려운 문제들을 몇번 풀어보다가 포기하고를 반복하다가 삼성 코딩 테스트에 응시하게 되었지만 역시, 결과는 처참했습니다..... (이후에 네이버 코딩 테스트도 보았지만 역시 결과는 마찬가지 ^^;) 문제도 문제이지만, 알고리즘에 대한 지식도 상당히 부족하고 (참고로 저는 통신 전공....) 어디서 어떻게 시작해야될지 .. 2023. 10. 31.