목록자료구조와 알고리즘 (8)
Groo

안녕하세요, 오늘은 프로그래머스에 존재하는 문제에 대한 풀이를 해보려고 합니다. 이 문제는 코딩테스트 연습 채널에서 풀어볼 수 있으며 이전 글과는 달리 간단하게 작성하겠습니다. 📚 문제 설명 어느 날, 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지합니다. 사용자는 크레인을 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집..

안녕하세요, 오늘은 정렬 알고리즘에 대해서 여러분들에게 소개하려고합니다. 정렬 알고리즘의 종류는 정말 다양하고 내용도 많습니다. 천천히 정렬 알고리즘에 대해서 살펴보도록 하겠습니다. 📊 정렬의 개념이란? 정렬은 간단한 의미로 이름, 성별, 키와 같이 특정 항목의 대소 관계에 따라 데이터 집합을 일정한 순서로 나열하는 것입니다. 예를 들어 수학에서는 이 정렬의 개념을 활용하여 오름차순, 내림차순이라는 개념이 존재하며 실생활에서도 정렬을 많이 활용하고 있습니다. 🔈 정렬 알고리즘의 핵심 요소는? 정렬 알고리즘의 핵심 요소는 아래와 같이 간단합니다. 대부분의 정렬 알고리즘은 교환, 선택, 삽입을 통해서 거의 모든 기능을 구현할 수 있으며 만약 이를 잘 활용하지 못한다면 정렬 알고리즘을 구현하는 것은 역시 어려..

안녕하세요, 오늘은 수많은 알고리즘 중 대표적인 알고리즘인 재귀에 대해 알아보려고 합니다. 여러분도 재귀에 대해서는 많이 들어보았을 것입니다, 그러한 만큼 사용 빈도가 다른 알고리즘보다 높고 중요합니다. 🤔 재귀에 대해서 들어보셨나요? 재귀는 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라고 합니다. 아래의 그림을 보시죠 화면 가운데에 다시 화면이 나타납니다. 또한 그 화면 가운데에 똑같은 화면이 반복되어 나타납니다. 이제 재귀의 개념이 이해가 되셨나요? 📈 재귀를 활용한 팩토리얼 구현하기! 이번에는 위에서 배운 재귀의 개념을 활용하여 재귀를 활용한 팩토리얼을 구해보겠습니다. 먼저 팩토리얼이라는 것이 무엇인지에 대해서 설명하겠습니다. 팩토리얼은 아래의 예시와 같이 사용자..

안녕하세요, 오늘은 큐라는 자료구조에 대해서 이야기를 해보려고 합니다. 큐는 저번 시간에 공부한 스택과 몇 가지의 차이를 제외하고는 거의 비슷한 구조로 이루어져 어렵지 않을 것입니다. 🤷♀️ 큐는 무엇인가요? 큐는 저번에 공부한 스택과 마찬가지로 데이터를 일시적으로 쌓아 놓은 자료구조입니다. 하지만 스택의 입출력 방식이 후입 선출이었다면 큐는 선입선출의 입출력 방식을 가지고 있습니다. 저희가 생활 속에서 마주하는 상황과 아주 비슷한 순서라고 말할 수 있습니다. 구성 모습 프런트 (Front) / 리어 (Rear) 개념 및 의미 데이터를 일시적으로 저장하기 위한 자료구조 구현 가능 방식 배열 (Array) / 링 버퍼 (Ring Buffer) 데이터 입력 방식 인큐 (Enqueue) 데이터 출력 방식 디..