목록코딩 테스트 합격자 되기_자바💜 (15)
천리길도 한걸음부터
문제 13. 크레인 인형 뽑기 게임⭐⭐ - 저자 권장 시간 : 60분- 권장 시간 복잡도 : O(N^2+M)- 출제 : 2019 카카오 개발자 겨울 인턴십import java.util.Stack;class Solution { public int solution(int[][] board, int[] moves) { // 1. 각 열에 대한 스택을 생성합니다. StackInteger>[] lanes = new Stack[board.length]; for(int i=0; ilanes.length; i++) { lanes[i] = new Stack(); } // 2. board를 역순으로 탐색하며, 각 열의 인형을..
문제12. 주식가격⭐⭐- 저자 권장 시간 : 40분- 권장 시간 복잡도 : O(N)- 출제 : 스택/큐import java.util.Stack;class Solution { public static int[] solution(int[] prices) { int n = prices.length; int[] answer = new int[n]; // 1. 가격이 떨어지지 않은 기간을 저장할 배열 // 스택을 사용해 이전 가격과 현재 가격 비교 StackInteger> stack = new Stack(); // 2. 스택생성 stack.push(0); for (int i=1; in; i++) { while(!s..
문제11. 짝지어 제거하기⭐- 저자 권장 시간 : 30분- 권장 시간 복잡도 : O(N)- 출제 : 2017 팁스타운baabaab aabaaba abaab abaab baaaaimport java.util.Stack;class Solution { public int solution(String s) { StackCharacter> stack = new Stack(); for (int = 0; is.length(); i++) { char c = s.charAt(i); // 1. 스택이 비어있지 않고, 현재 문자와 스택의 맨 위 문자가 같으면 if (!stack.isEmpty() && stack.peek() == c) ..
-출처 : 프로그래머스 - 코딩테스트 연습문제 설명array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.제한사항arr은 자연수를 담은 배열입니다.정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.divisor는 자연수입니다.array는 길이 1 이상인 배열입니다.입출력 예arrdivisorreturn[5, 9, 7, 10]5[5, 10][2, 36, 1, 3]1[1, 2, 3, 36][3,2,6]10[-1] import java.util.*; class Solution { public int[..
- 출처 : 프로그래머스 - 코딩테스트문제 설명배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.제한사항배열 arr의 크기 : 1,000,000 이하의 자연수배열 arr의 원소의..
- 저자 권장 시간 : 30분- 권장 시간 복잡도 : O(N^2)- 출제 : 월간 코드 챌린지import java.util.ArrayDeque;import java.util.HashMap;class Solution { public static int solution(String s) { // 1. 괄호 정보를 저장함. 코드를 간결하게 할 수 있음 HashMapCharacter, Character> map = new HashMap(); map.put(')', '('); map.put('}', '{'); map.put(']', '['); // map -> ) ( } { ] [ int n = s.length(); /..
- 저자 권장 시간 : 30분- 권장 시간 복잡도 : O(logN)- 출제 : 저자출제import java.util.Stack;class Solution { public static String solution(int decimal) { StackInteger> stack = new Stack(); while (decimal > 0) { int remainder = decimal % 2; stack.push(remainder); decimal /= 2; } // String의 + 연산은 시간 복잡도 측면에서 성능이 좋지 않음 // 따라서 StringBuilder를 사용했음 ..
문제08 올바른 괄호- 저자 권장 시간 : 30분- 권장 시간 복잡도 : O(N)- 출제 : 스택/큐import java.util.ArrayDeque;class Solution { private boolean solution(String s) { ArrayDequeCharacter> stack = new ArrayDeque(); char[] a = s.toCharArray(); for (char c : a) { if(c=='(') { stack.push(c); } else { if(stack.isEmpty() || stack.pop() == c) { ..