Stack12 [BOJ] 1918 후위 표기식 - JAVA 1. 문제 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 수식은 일반적으로 3가지 표기법으로 표현할 수 있다. 연산자가 피연산자 가운데 위치하는 중위 표기법(일반적으로 우리가 쓰는 방법이다), 연산자가 피연산자 앞에 위치하는 전위 표기법(prefix notation), 연산자가 피연산자 뒤에 위치하는 후위 표기법(postfix notation)이 그것이다. 예를 들어 중위 표기법으로 표현된 a+b는 전위 표기법으로는 +ab이고, 후위 표기법으로는 ab+가 된다. 이 문제에서 우리가 다룰 표기법은 후위 표.. 코딩테스트/BOJ 2023. 7. 13. [BOJ] 9935 문자열 폭발 - JAVA 1. 문제 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. - 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. - 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. - 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다. 상.. 코딩테스트/BOJ 2023. 3. 4. [BOJ] 5397 키로거 - JAVA 1. 문제 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 강산이는 키보.. 코딩테스트/BOJ 2023. 2. 24. [SWEA] 1224 계산기3 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 후위연산식으로 바꾸기 1. '('라면 연산자스택에 push 2. 숫자라면 후위연산식에 더하기 3. 1,2 모두 아니라면 pop하며 후위연산식에 계속 더해준다. 4. ')'라면 마지막에 '('가 남았을것이므로 pop을 해주고, 부호라면 연산자스택에 push한다. * 우선순위 체크 함수 괄호면 0, +-는 1, */는 2를 반환했다. -1은 오류값. 스택을 이용한 후위연산식 계산방법은 [SWEA] 1223 계산기2 와 동일하다. import java.io.BufferedReader; import java.io.IOException; import .. 코딩테스트/SWEA 2022. 2. 9. [BOJ] 2493 탑 - JAVA 1. 문제 2. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class BOJ_2493_탑 { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(in.readLine()); StringTokenizer st = new StringTok.. 코딩테스트/BOJ 2022. 2. 7. [SWEA] 1218 괄호짝찾기 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Stack; public class D4_1218_SW문제해결기본4일차_괄호짝짓기 { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in.. 코딩테스트/SWEA 2022. 2. 7. [BOJ] 17298 오큰수 - JAVA 1. 풀이 ① stack.peek()과 nums[i] 비교 stack.peek()이 더 작으면 pop시켜서 없애버린다. 자신보다 큰 수 중 가장 오른쪽에 있는 수를 찾기 때문에 마지막 ④를 수행하면 그 뒤의 비교와 영향 없음 ② ①이 끝난 뒤 stack이 비어있다면 nums[i]보다 큰 수가 없는 것이므로 result[i]에 -1을 저장하고 다음 숫자를 비교한다. ③ stack이 비어있지않고 stack.peek()이 nums[i]보다 크다면 저장한다. ④ stack에 현재 nums[i]를 push하고 다음 숫자를 비교한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ja.. 코딩테스트/BOJ 2022. 2. 5. [BOJ] 1874 스택수열 - JAVA 1. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BOJ_1874_스택수열 { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(in.readLine()); Stack stack = new Stack(); StringBuilder sb = new StringBuilder(); int .. 코딩테스트/BOJ 2022. 2. 5. [BOJ] 4949 균형잡힌 세상 - JAVA 1. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BOJ_4949_균형잡힌세상 { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Stack stack; StringBuilder sb = new StringBuilder(); while (true) { String line = in.readLine(); if (line.equa.. 코딩테스트/BOJ 2022. 2. 5. [BOJ] 9012 괄호 - JAVA 1. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BOJ_9012_괄호 { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(in.readLine()); Stack stack; StringBuilder sb = new StringBuilder(); while(T-->0){ stack .. 코딩테스트/BOJ 2022. 2. 5. [BOJ] 10772 제로 - JAVA 1. 풀이 1) Stream사용 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BOJ_10773_제로 { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int K = Integer.parseInt(in.readLine()); Stack stack = new Stack(); while(K-->0){ int num = Integer.p.. 코딩테스트/BOJ 2022. 2. 5. [BOJ] 10828 스택 - JAVA 1. 풀이 1) java.util.Stack 사용 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public class BOJ_10828_스택 { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(in.readLine()); Stack stack = ne.. 코딩테스트/BOJ 2022. 2. 5. 이전 1 다음