목록자료구조 (97)
개발자는 기록이 답이다

4. 후위식 연산(postfix) 예시 입력 1 352+*9- 예시 출력 1 12 후의식이란 숫자가 앞에있고 연산자만 뒤에 빠지는 것 입니다. 중의식 : 5+3, 5-3 후의식 : 53+, 53- 후의식으로 할때 빼기를 당하는 숫자는 왼쪽에 있는 숫자입니다. 숫자면 stack에 푸시하고 연산자를 만나면 꺼냅니다. 먼저 뺀게 오른쪽, 나중에 뺀게 왼쪽, 왼쪽에서 오른쪽을 빼야 합니다. 그래서 후의식을 다 연산하고 나면 스택에 숫자 딱 하나 남아있습니다. 강의 풀이 (Time: 155ms Memory: 27MB) import java.util.Scanner; import java.util.Stack; public class Main { public int solution(String str) { int an..

3. 크레인 인형뽑기(카카오) 예시 입력 1 5 0 0 0 0 0 0 0 1 0 3 0 2 5 0 1 4 2 4 4 2 3 5 1 3 1 8 1 5 3 5 1 2 1 4 예시 출력 1 4 크레인 인형뽑기는 카카오 기출문제이다. 스택을 사용해서 푸는데, 크레인이 움직인 위치를 하나씩 처리해서 인형이 몇개가 터졌는지 개수를 구하면된다 내가 푼 풀이(Time: 198ms Memory: 30MB) import java.util.Scanner; import java.util.Stack; public class Main { public int solution(int n, int[][] board, int m, int[] moves) { int cnt = 0; Stack stack = new Stack(); for ..

2. 괄호문자제거 예시 입력 1 (A(BC)D)EF(G(H)(IJ)K)LM(N) 예시 출력 1 EFLM 내가 푼 풀이(Time: 167ms Memory: 27MB) 나는 여는 괄호 만나서 pop해줄때 peek()함수를 사용해서 상단에 있는걸 체크한다음에 pop해주고 while문 나와서 남은 여는 괄호를 빼내기 위해 한번 더 pop를 했는데, 아예 pop함수 자체가 빼낸걸 리턴한다고 한다. 그리고 stack에서도 get(int idx)함수로 탐색한걸 하나씩 출력할 수 있다고 한다. import java.util.Scanner; import java.util.Stack; public class Main { public String solution(String str) { StringBuilder sb = n..

1. 올바른 괄호 예시 입력 1 (()(()))(() 예시 출력 1 NO 강의 풀이(Time: 167ms Memory: 27MB) 중괄호든 대괄호든 괄호 문제는 십중팔구 Stack으로 풀어야 한다. )(()) // 닫는 괄호가 더 많을때 예외처리 필요 )()( // 닫는 괄호 여는 괄호 개수가 똑같아도 )(는 올바른괄호가 아니기 때문에 예외처리 필요 (()() // 여는 괄호가 더 많을때 예외처리 import java.util.Scanner; import java.util.Stack; public class Main { public String solution(String str) { String answer = "YES"; Stack stack = new Stack(); for (Character x ..