목록강의 (57)
개발자는 기록이 답이다

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..

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 ..

4. 모든 아나그램 찾기(Hash, sliding window : 시간복잡도 O(n)) 예시 입력 1 10 3 13 15 34 23 45 65 33 11 26 42 예시 출력 1 143 내가 푼 첫번째 틀린 풀이 맨 처음에는 map에서 equals함수가 된다는걸 모르고 엄청난 뻘짓을 했다,, map.get(key)로 나온 value값이 서로 일치하는지로 해봤더니, 이전에 A부분에서 지나간건 체크를 못하더라. import java.util.HashMap; import java.util.Scanner; public class Main { public int solution(String str, String t) { int answer = 0; HashMap target = new HashMap(); for ..