5.4. 후위식 연산(postfix) 문제 후위연산식이 주어지면 연산한 결과를 출력하라 입력 352+*9- 출력 12 풀이 후위식(postfix)이란? - 피연산자를 먼저 표시하고 연산자를 나중에 표시하는 방법 - 컴파일러가 사용하는 것으로 스택을 사용하는 예들 중 가장 빈번하게 등장 - ex) 3*(5+2)-9를 후위연산식으로 표현하면 → 352+*9- 로 표현되며 결과는 12이다. 첫 번째 풀이 public int solution(String str) { int answer = 0; Stack stack = new Stack(); // 0 : 48 ~ 9 : 57 for (char x : str.toCharArray()) { if ((int) x >= 48 && (int) x = 48 && (int)..
stack
5. 3. 크레인 인형뽑기(카카오) 문제 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 ..
5.2. 괄호문자제거 문제 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성 입력 (A(BC)D)EF(G(H)(IJ)K)LM(N) 출력 EFLM 풀이 import java.util.*; public class Main { public String solution(String str) { String answer = ""; Stack stack = new Stack(); for (char x : str.toCharArray()) { if (x == ')') { while (stack.pop() != '(') ; } else stack.push(x); } for (int i = 0; i < stack.size(); i++) { answer += sta..
5.1. 올바른 괄호 문제 입력된 괄호가 올바른 괄호이면 “YES", 올바르지 않으면 ”NO" 출력 (())() 는 괄호의 쌍이 올바르게 위치하는 것, (()()))은 올바른 괄호가 아님. 입력 (()(()))(() 출력 NO 풀이 import java.util.*; public class Main { public String solution(String str) { String answer = "YES"; Stack stack = new Stack(); for(char c : str.toCharArray()) { if(c == '(') stack.push(c); else { if(stack.isEmpty()) return "NO"; // 닫는 괄호가 더 많을 경우 stack.pop(); // 상단의 문..