본문 바로가기
반응형

스택8

[백준] 9012번 - 괄호 (Python) https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은.. 2024. 4. 14.
[백준] 10828번 - 스택 (Python) https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있.. 2024. 3. 23.
[백준] 17298번 - 오큰수 (Java)(○) https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 1. 수열이 A1 ~ An 만큼 있다. 각 수열의 오큰수를 구해야 한다. 2. 오큰수란? Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수이다. 없으면 -1이다. 3. 오큰수 구하기 로직 - Ai가 가장 오른쪽 수이면 -1이다. - Ai 보다 큰 수가 없으면 -1이다. - Ai의 오른쪽 수를 순차적으로 비교해서 더 크면 스택에 push 한다. - 스택이 빌 때까지 pop을 하고 .. 2023. 1. 3.
[백준] 1874번 - 스택 수열 (Java)(△) https://www.acmicpc.net/problem/1874 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. 1~n 까지의 자연수를 스택에 집어 넣는다. 2. 그 n까지의 자연수들을 스택에 넣었다 뺐다 하면서 입력값으로 주어진 수열을 만들 수 있는지 확인한다. 3. 오름차순으로 증가시키면서 집어 넣는데 push 때는 '+', pop은 '-'을 출력한다. 불가능하면 'NO'을 출력한다. import java.io.Buf.. 2023. 1. 2.
[백준] 1662번 - 압축 (Java) 문자열을 순차탐색해서 ')'가 나올 때까지 계속 스택에 저장한다. ')'를 만나면 스택에 저장했던 문자들을 하나씩 꺼낸다. '('를 만나면 꺼낸 문자들을 문자열로 만들어서 괄호 앞의 숫자만큼 루프를 돌려서 문자열에 머지한다. 이걸 반복해서 괄호안의 문자들을 모두 정리한 후 남은 문자열을 다시 붙여서 최종 길이를 출력한다. import java.util.Scanner; import java.io.IOException; import java.util.Stack; import java.lang.StringBuilder; //[백준] 1662번 - 압축 (Java) public class Main { static char ch[]; static int str_len = 0; public void InputDat.. 2022. 9. 30.
[백준] 2493번 - 탑 (Java) https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 레이저 신호는 탑의 왼쪽으로 쏘면, 그 탑보다 큰 탑에서만 수신할 수 있다. 각각의 탐에서 발사한 레이저 신호를 어느 탑에서 수신하는지 번호를 출력한다. i번째 탑보다 왼쪽에 있는 탑이 크면 수신이 가능하다. N의 범위가 2022. 9. 29.
[백준] 6198번 - 옥상 정원 꾸미기 (Java) https://www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net i번째 건물에서 볼 수 있는 건물의 수를 구해야 한다. 이중 루프를 돌려서 i번째 건물보다 작은 건물이 나오면 sum++를 해주면 되는데... 순차검색으로 풀면 타임 아웃이 발생한다. 문제는 N 2, 1->3, 1->4 (2) 0개 (3) 1개: 3->4 (4) 0개 (5) 1개: 5->6 (6) 0개 * i번째 건물을 볼수 있는 건물의 수 (1) 0개 (2) 1개: 1->2 (3) 1개:.. 2022. 9. 29.
[백준] 9935번 - 문자열 폭발 (Java) 1. 문자열을 폭발문자열로 split 한 다음 머지하자. 2. 머지한 문자열을 다시 재귀호출하자. 2-1. 문자열에서 폭발문자열이 없으면 문자열 리턴 2-1. 문자열의 사이즈가 0이면 "FRULA"리턴 import java.util.*; import java.io.*; /* [백준] 9935번 - 문자열 폭발 (Java) */ public class Main { static String str, bom; void InputData() { Scanner in = new Scanner(System.in); str = in.next(); bom = in.next(); } String DFS(String s) { if (!s.contains(bom)) { if (s.length() == 0) return "FR.. 2022. 9. 21.
반응형