본문 바로가기

정렬11

[스터디 후기] 프로그래머스 커뮤러닝 C++반 5기 후기 안녕하세요 기린입니다 :) 오늘은 제가 지난 6월달에 프로그래머스에서 진행한 커뮤러닝 클래스에 대한 후기를 남겨보도록 하겠습니다! https://school.programmers.co.kr/learn/courses/14030 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 먼저 커뮤러닝은 자료구조 & 알고리즘을 기본적으로 알고 있지만 효율성 테스트 케이스를 통과하지 못하는 분들을 위한 실력 UP 패키지 입니다 : ] 가장 중요한 점은 문제만 풀고 해설강의만 드는게 아니라, 푼 문제들을 동료들과 서로 리뷰해줌으로써 같이 성장해 나가는 과정이지요 또한 중간, .. 2022. 7. 6.
[알고리즘-11] 심화 정렬 문제 풀어보기 안녕하세요 기린입니다 :) 이번에는 지난 시간까지 배운 정렬들을 활용하여 백준 온라인 저지 https://www.acmicpc.net/ 에 있는 심화 정렬 문제들을 풀어보고자 합니다. 실제 프로그래밍 대회나 실무에서 요구하는 대부분의 정렬 문제는 단순한 형태의 정렬 문제가 아닙니다. 다양하게 연관된 데이터 상에서 정렬을 수행해야 하는 문제가 대부분입니다. 따라서 심화적인 정렬 문제들을 풀어보면서 연습하는 시간이 필요합니다. ① 단어 정렬 https://www.acmicpc.net/problem/1181 위 문제는 단어들을 정렬하는 문제입니다. 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 .. 2022. 4. 12.
[알고리즘-10] 계수 정렬(Counting Sort) 안녕하세요 기린입니다 :) 지금까지 선택 정렬, 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬, 힙 정렬 알고리즘에 대해 알아보았는데요 여기서 정렬 속도가 가장 빠른 알고리즘은 퀵 정렬, 병합 정렬, 힙 정렬 등이 시간복잡도 O(N * logN)으로 가장 빠르다고 할 수 있습니다. 하지만 이 보다 더 빠르게 정렬해야 한다면 어떻게 해야할까요? 다음의 5이하 자연수 데이터들을 오름차순 정렬하세요. 1 3 2 4 3 2 5 3 1 2 3 4 4 3 5 1 2 3 5 2 3 1 4 3 5 1 2 1 1 1 이번 예시의 데이터의 갯수는 30개입니다. 다만 모든 데이터가 1부터 5사이에 속한다는 특징이 있습니다. 이처럼 '범위 조건'이 있는 경우에 한해서 굉장히 빠른 알고리즘이 있습니다. 시간 복잡도가 무려 O(.. 2022. 4. 11.
[알고리즘-9] 힙 정렬 (Heap Sort) 안녕하세요 기린입니다 :) 오늘은 힙 정렬(Heap Sort)에 대해 알아보겠습니다. 먼저 힙 정렬은 병합 정렬과 퀵 정렬만큼 정렬속도가 빠른 알고리즘입니다. 그리고 실제 고급 프로그래밍 기법으로 자주 사용하기 때문에 반드시 알고 넘어가야 할 정렬 알고리즘이지요. 힙 정렬은 힙 트리 구조(Heap Tree Structure)를 이용하는 정렬 방법입니다. 힙 트리 구조를 이해하기위해 먼저 힙과 트리 구조에 대해 알아야 합니다. 가장 먼저 트리 구조 중 이진 트리(Binary Tree)에 대해서 알고있을 필요가 있습니다. 이진 트리란 컴퓨터 안에서 데이터를 표현할 때 데이터를 각 노드(Node)에 담은 뒤에 노드를 두 개씩 이어 붙이는 구조를 말합니다. 이 때 트리구조에 맞게 부모 노드에서 자식 노드로 가지.. 2022. 4. 5.
[알고리즘-8] C++ STL sort 함수 다루기 - ② 안녕하세요 기린입니다 :) 오늘은 지난 시간에 이어서 STL sort 함수 다루기를 진행해보도록 하겠습니다. 2022.03.29 - [알고리즘/문제집] - [알고리즘-7] C++ STL sort() 함수 다루기 - ① [알고리즘-7] C++ STL sort() 함수 다루기 - ① 안녕하세요 기린입니다 :) 지금까지 선택 정렬, 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬의 개념을 이해하고 간단한 예시를 통해 프로그램까지 작성하는 시간을 가졌습니다. 자 이번엔 C++ STL sor kirinit.tistory.com 지난 시간에 클래스(Class)를 정의해서 여러 개의 변수가 존재하는 상황에서 '특정한 변수'를 기준으로 정렬하는 방법에 대해 알아보았죠 :) 하지만, 클래스를 정의하는 방식은 프로그래밍 속.. 2022. 3. 30.
[알고리즘-7] C++ STL sort() 함수 다루기 - ① 안녕하세요 기린입니다 :) 지금까지 선택 정렬, 버블 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬의 개념을 이해하고 간단한 예시를 통해 프로그램까지 작성하는 시간을 가졌습니다. 자 이번엔 C++ STL sort 함수에 대해 알아 보도록 하겠습니다. 정렬은 컴퓨터 공학의 오래된 연구 분야이므로 아주 훌륭한 정렬 라이브러리들이 존재하죠. 즉, 앞서 직접 코딩했던것 처럼 할 필요 없이 라이브러리를 가져다 쓰면 되는 것입니다. 그치만 기본적인 정렬 원리에 대해서는 잘 알고있어야 문제해결능력에 도움이 될거라 생각합니다. 이제 sort 함수의 사용법을 소스코드로 보시겠습니다 #include #include using namespace std; int main(void) { // 입력 int a[10] = {2, 3, .. 2022. 3. 29.