Study/Algorithm 3

[자료구조/파이썬] 스택(Stack) / 큐(Queue) 개념 및 구현

1. 자료구조 (Data Structure) - 자료구조 : 데이터를 표현하고 관리하고 처리하기 위한 구조 2. 스택과 큐 - 스택과 큐는 삽입(push) 과 삭제(pop) 함수로 구성된다. - 삽입(push)함수는 자료구조에 데이터를 삽입하는 역할을 하고, 삭제(pop)함수는 자료구조에서 데이터를 삭제하는 역할을 한다. 스택과 큐를 사용할 때 주의해야하는 부분 → 오버플로우와 언더플로우 - 오버플로우(overflow)는 특정 자료구조에 수용할 수 있는 데이터의 크기를 넘어선 상태에서 삽입연산을 수행하는 경우 발생한다. → 저장공간을 벗어나 데이터가 넘칠(over)때 발생한다. - 언더플로우(underflow)는 자료구조에 데이터가 전혀 들어있지 않은 상태에서 삭제연산을 수행하는 경우 발생한다. 3. 스..

Study/Algorithm 2022.01.08

[알고리즘 / Algorithm] chapter 3. Greedy Algorithm (그리디 알고리즘) -큰 수의 법칙

Greedy Algorithm (그리디 알고리즘) 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더해서 가장 큰 수를 만드는 법칙이 있다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속으로 K번을 초과해 더해질 수 없다는 것이 특징이다. 입력조건 첫째 줄에 N(2≤ N ≤1,000) , M(1≤ M ≤10,000), K(1 ≤ K ≤10,000) 의 자연수가 주어지며 각 자연수는 공백으로 구분한다. 둘째 줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단, 자연수는 1 이상 10,000이하의 수로 주어진다. 입력으로 주어지는 K는 항상 M보다 작거나 같다. 출력조건 첫째 줄에 큰 수의 법칙에 따라 더해진 답을 출력한다. 1. 주어진 수를 M번 더했을 때 가장 큰 수가 나오려면..

Study/Algorithm 2021.01.10

[알고리즘 / Algorithm] chapter 3. Greedy Algorithm (그리디 알고리즘)

Greedy Algorithm (그리디 알고리즘) 그리디 알고리즘은 매 순간 가장 좋아보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 그리디 알고리즘을 번역하면 '탐욕적인' 알고리즘이다. 여기서 '탐욕적' 이라는 말은 현재 상황에서 지금 당장 좋아보이는 것만 고르는 방법을 의미한다. 그리디 알고리즘은 문제의 유형이 매우 다양하기 때문에 암기해서 잘 푼다고 할 수 없다. 대신 많은 유형을 접해보고 문제를 풀어보며 훈련을 해야한다. 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로' , '가장 작은 순서대로' 와 같이 기준을 은근슬쩍 제시해준다. 대체로 그리디 알고리즘은 정렬 알고리즘과 짝을 이뤄 출제가 된다. 예제 3-1 거스름..

Study/Algorithm 2021.01.04