목록stack (6)
어흥
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 1. 주의할 점 - 스택을 활용하여 해결한다 - 짝지어 제거한 이후, 문자열을 새로 저장할 필요가 없다 2. 구현 - 문자열을 전부 비교하며, 스택이 빈 경우에는 문자를 그대로 넣는다 - 만약 스택이 비지 않았다면, 스택의 Top과 현재 문자를 비교하여 같으면 Pop, 다르면 Push를 수행한다 - 모든 문자열에 대해 검사를 한 후, 스..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42584?language=cpp 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 1. 주의할 점 - Stack을 이용하여 해결한다 2. 구현 - Stack에 Prices의 인덱스를 담는 방식으로 진행한다 - Stack의 Top의 원소에 해당하는 Prices보다 현재 Prices(val)가 크거나 같으면 Stack에 추가한다 - 아니라면 Stack의 원소를 뽑아내여 ..
문제 링크: https://www.acmicpc.net/problem/2800 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 1. 주의할 점 - 출력 결과로 서로 다른 문자열을 사전순으로 출력해야 한다 2. 구현 - Stack을 통해 개구간과 폐구간을 계산하여 쌍을 이룰 경우 각각 Open, Close 벡터에 인덱스 번호를 추가한다 - DFS() 함수를 통해 최대 2^10-1의 경우를 계산하며, 일부 괄호를 제거한 문자열의 경우 Set에 추가하여 중복을 제거한다 - C++에서..
문제 링크: www.hackerrank.com/challenges/maximum-element/problem?utm_campaign=challenge-recommendation&utm_medium=email&utm_source=24-hour-campaign Maximum Element | HackerRank Given three types of queries, insert an element, delete an element or find the maximum element in a stack. www.hackerrank.com 1. 주의할 점 - 최대값을 어떤 방식으로 저장하고 있을 것인가 - Stack에서 Pop한 이후, Stack이 비었다면 최대값은? 2. 구현 - Info 형태의 구조체를 담는 S..
문제링크: www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 1. 주의할 점 - 레이저가 쏘아질 때, 얼만큼 값이 추가되는지 확인한다 - 끝처리를 어떻게 할지 생각한다 2. 구현 - 레이저는 항상 () 형태로 입력되므로 '('다음에 ')'가 있으면 레이저, 없으면 쇠막대기의 연장선이라고 생각한다 - 쇠막대기면 Stack에 '('를 추가한다 - 레이저라면 Stack의 크기만큼 Result에 더한다(레이저를 기준으로 왼쪽 부분 추가) - 쇠막대기가 끝났다면, Result++..
문제 링크: https://www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으�� www.acmicpc.net 1. 주의할 점 - N^2으로 풀지 않도록 한다 -> TLE 발생 - Stack을 사용하여 풀도록 한다 2. 구현 - 모든 수들을 배열 Arr[]에 입력받으며, 가장 높은 빌딩의 높이+1을 Maxi 변수에 넣는다(가장 오른쪽에 위치한 건물의 오른쪽에 가상의 Maxi 높이만큼의 건물이 있다고 가정하고 풀기 위해 사용한다) - 건물 배열은 1~N에 담았기 때문에 N+1번째 빌딩..