스택/큐 3

[Java] 프로그래머스 Level 1 : 같은 숫자는 싫어

- 문제설명 - 예시 - 해결과정 문제 분류가 스택/큐여서 처음에는 의아했다. 스택/큐를 이용하지 않아도 바로 풀 수 있을 것 같은데.. 그래도 스택/큐를 이용해서 풀어보고자 했다! 먼저 큐에 모든 입력을 다 담아준다. 먼저 하나를 poll() 하고, while문을 이용해 peek()값과 이전의 poll()값이 똑같다면 다시 poll()하도록 만들었다. 이렇게 중복값을 없애고 결과 리스트에 담아준다. 아래는 실제 코드이다. import java.util.*; public class Solution { public int[] solution(int[] arr) { Queue q = new LinkedList(); ArrayList result = new ArrayList(); for(int a : arr)..

[Java] 프로그래머스 Level 2 : 주식가격

- 문제설명 - 제한사항 - 예시 & 입출력 예 - 해결과정 - 솔루션 import java.util.*; class Solution { public int[] solution(int[] prices) { Stack stack = new Stack(); int[] answer = new int[prices.length]; for(int i = 0; i < prices.length; i++) { while(!stack.empty() && prices[i] < prices[stack.peek()]) { answer[stack.peek()] = i - stack.peek(); stack.pop(); } stack.push(i); } // 계속 가격이 줄지 않으면 빈 배열로 남게된다. 아래를 추가하자. whil..

[Java] 프로그래머스 Level 2 : 올바른 괄호

- 문제설명 - 제한사항 - 예시 & 입출력 예 - 해결과정 문제 분류 자체는 스택/큐 이지만, 굳이 스택/큐를 이용하지 않아도 문자열 각 자리의 문자 하나씩 가져와 비교해보면 오히려 더 간단하게 풀 수 있었다. 그러나 분류가 스택/큐 인만큼 주어진 방식으로 풀어보고자 했다. 유효성 검사에서 통과하지 못한 첫번째 코드이다. import java.util.*; class Solution { boolean solution(String s) { Stack stack = new Stack(); for(int i = s.length() - 1; i >= 0; i—) { stack.push(s.charAt(i)); } int count = 0; while(!stack.empty()) { char c = stack...