문제 백준 2812번 주어진 숫자에서 K개의 숫자를 없앴을 때 가장 큰 수를 만드는 문제를 해결했습니다. 문제 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N ≤ 500,000) 둘째 줄에 N자리 숫자가 주어진다. 이 수는 0으로 시작하지 않는다. 예시: 7 3 1231234 출력 입력으로 주어진 숫자에서 K개를 지웠을 때 얻을 수 있는 가장 큰 수를 출력한다. 예시: 3234 풀이 과정 그리디 알고리즘으로 해결할 수 있는 문제를 찾았기 때문에, 그리디 알고리즘으로 접근했습니다. 그리디 알고리즘이란, 현재 선택할 수 있는 가장 최적의 선택을 하는 것입니다. 당장은 최적의 선택일 수 ..
개요 자료구조에서 배운 스택을 활용해서 백준 알고리즘 문제를 풀어보겠습니다. 참고 - [자료구조] 스택(Stack)이란? 스택을 활용해 괄호쌍 확인하기 제가 저번에 포스팅 했던 글입니다. 스택의 개념을 이해하면서 비슷한 예제를 풀었었는데요. 그 예시보다 조금 높은 난이도의 문제입니다. 문제 https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과..
목표 스택을 활용해서 중위 표기법으로 입력한 연산을 후위 표기법으로 변환해서 결과를 출력하는 프로그램을 작성해보겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 수식 표기법 스택 예제 : 중위 표기법을 후위 표기법으로 변환하여 계산하는 계산기 정리 개요 저번 포스팅에서 스택에 대해서 복습했습니다. 스택은 LIFO(Last In First Out) 구조를 갖는 자료구조입니다. 마치 접시와 같이 마지막에 들어간 데이터가 맨 처음 나오는 구조로, 파이썬의 클래스를 활용해서 구현했습니다. 클래스 안에 멤버 리스트를 생성해서 append, pop 함수로 스택을 만들었습니다. 이번 포스팅에서는 스택을 활용해서 중위 표기(infix)로 입력된 수식을 후위 표기(postfix)로 바꾸고 계산하는 프로그램을 작성해보도록..
목표 저번 포스팅에서 간단히 알아봤던 스택(Stack)에 대해서 복습하고 실습을 통해 자세히 이해하도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 스택(Stack) 이란? 연습 문제: 괄호 맞추기 정리 개요 저번 포스팅에서 순차적 자료구조(Sequential Data Structure)에 대해서 알아보았습니다. 참고 - [자료구조] 순차적 자료구조, 배열과 리스트의 이해 그 중에서도 배열과 리스트에 대해서 자세히 알아보았는데요. 이 과정에서 스택, 큐, 디큐에 대해서 잠깐 언급했었습니다. 이번 포스팅에서는 스택에 대해서 자세히 알아보도록 하겠습니다. 스택(Stack)이란? 어떤 자료구조든 삽입·삭제·탐색 기능을 제공합니다. 스택에서는 Push(삽입), Pop(삭제)를 비롯한 Top(맨 위에 있는..