스택
-
BOJ) 스택 수열 (1874 번)알고리즘/백준 2021. 2. 3. 17:26
스택 수열 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 1 ~ n의 수를 스택에 넣었다가 뽑아 늘어놓아서 하나의 수열을 만든다. 이때, 스택에 push하는 순서가 반드시 오름차순을 지켜야한다. 조건에 맞으면 push와 pop하는 행위에 대한 문자열을, 충족하지 못하면 NO를 출력하는 문제다. 문제는 간단했다. 배열을 돌면서 현재 스택의 top과 같은지, 혹은 대소인지 비교해주어 문제를 풀었다. 스택의 top보다 순회중인 배열..
-
BOJ) 문자열 폭발 (9935 번)알고리즘/백준 2021. 1. 29. 17:22
문자열 폭발 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 이전에 시도했다가 실패했던 문제다. replaceAll이라는 좋은 메소드를 제공해주는데 굳이 구현을 해야할까? 싶어서 시도했었는데 역시나 시간초과였다. 자바는 문자열에 참 약하다...ㅠ 어떻게 풀어야할까 생각하다가 문제의 하단에 있는 알고리즘 분류를 봤는데 스택이 있었다. 그래서 스택을 이용해서 먼저 문제를 풀었다. 문자열을 돌면서 문자를 스택에 넣어주는데, 넣을 차례의 문자가 폭탄의 마지막 문자와 같은 경우 기존 스택에서 값을 꺼내면..
-
프로그래머스 Lv.2) 주식가격 (Stack & Queue)알고리즘/프로그래머스 고득점 Kit 2020. 6. 2. 21:09
주식가격 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 풀이 프로그래머스 고득점 Kit 중에 Stack, Queue에 해당하는 문제다. 이 문제도 전에 풀었지만, 포스팅을 한 적이 없어서 새롭게 포스팅을 한다. 우선 문제의 조건을 살펴보면, 특정 날의 주가가 이후에 가격이 떨어지지 않은 기간을 구하는 문제이다. 먼저, 첫번째로 풀었던 방법에 대해 기억나는대로 되짚어 본다면 반복문을 돌면서 특정 날의 주가에 대해 주가 하락 시점을 Stack에 저장한 것 같다. 하락 시..
-
프로그래머스 Lv.2) 올바른 괄호 짝지어 제거하기알고리즘/프로그래머스 2020. 5. 21. 16:23
올바른 괄호 짝지어 제거하기 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 풀이 로직을 바꿔가며 세 번 시도한 문제다. 첫번째는 StringBuffer에 주어진 String을 두고, 겹치는 부분을 계속해서 지워나가고 StringBuffer의 길이가 0이면 1, 아니면 0을 리턴해주었는데, 역시나 시간초과가 떴다. 두번째로 시도한 로직은 먼저 String을 돌면서 연속되는 글자가 있는 두 index를 LinkedList에 넣어주었다. LinkedList를 돌면서 카운팅을 해주었고, 해당 문자를 제..