배열 A에 1 ~ N까지 수가 들어있고 그 중에 없는 수를 return하는 문제. 무조건 1부터 순차적으로 시작해야되고, 없는 경우 마지막값의 +1한 값을 return해야 한다. class Solution { public int solution(int[] A) { // 빈 배열 처리 if (A.length == 0) { return A.length + 1; } List list = new ArrayList(); for (int a : A) { list.add(a); } // 리스트에 담아서 소팅 Collections.sort(list); int first = list.get(0); if (first != 1) { return 1; } for (int i = 0; i < list.size(); i++) {..
한 개구리가 반대편 길까지 가기 위해 X 위치에서 Y까지 매번 점프마다 D씩 이동하는 경우 몇 번 점프를 해야하는지 구하는 문제이다. class Solution { public int solution(int X, int Y, int D) { // 몇 번 점프해야하는 지 계산 int result = (Y - X) / D; // 나머지 값이 있는 경우 +1 처리 if (((Y - X) % D) > 0) { result++; } return result; } } 단순히 최종 거리를 구해서 (Y - X) 점프 당 거리로 나눠준 값에 나머지가 있는 경우 +1해서 결과를 계산한다.
홀수 개의 숫자를 갖는 배열 A를 입력받아 짝이 없는 정수 하나를 반환하도록 구현하는 문제. Map을 이용해서 처리하였음. Key에는 배열의 값과 Value에는 그 배열에 몇 개 있는지 카운트값을 갖도록 하였다. 그리고 Map을 loop하면서 Value가 2로 나누었을 때 나머지가 1인 경우 그 Key를 반환하도록 처리하였다. import java.util.HashMap; import java.util.Map; // you can write to stdout for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int solution(int[] A) { Map map = ne..
배열 A와 int K를 입력 받아서, K번만큼 오른쪽으로 로테이션한 결과를 반환하도록 구현하는 문제. 덱을 사용하여 K번만큼 뒤에서 빼서 앞으로 넣고 이런 식으로 로테이션함. import java.util.ArrayDeque; import java.util.Arrays; import java.util.Deque; // you can write to stdout for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int[] solution(int[] A, int K) { // 빈 배열 예외처리 if (A.length == 0) { return A; } int[] result ..
입력받은 int값을 2진수로 변환 후 1과 1 사이 길이를 모두 찾아서 제일 길이가 긴 길이를 반환하도록 하는 문제. 이 문제는 시간제한이 따로 없길래 아래와 같이 (좀 무식하게) 이중 for문으로 처리하도록 구현하였다. class Solution { public int solution(int N) { int result = 0; // 2진수로 변환 String binaryString = Integer.toBinaryString(N); for (int i = 0; i < binaryString.length(); i++) { // i번째가 1인 경우 if (binaryString.charAt(i) == '1') { // i+1부터 다시 for문을 돌면서 for (int j = i + 1; j < binar..
programmers.co.kr/learn/courses/30/lessons/42747 1. 문제 2. 풀이 import java.util.*; class Solution { public int solution(int[] citations) { int result = 0; // sorting하고 Arrays.sort(citations); for (int i = 0; i = i) { cnt++; } } if (i result) { result = i; } } return result; } } 문제가 어렵다기보다 이해가 잘 안되서 버벅였던 문제. 추가 테스트 케이스를 고려해보자면 { 10, 11, 12, 13 } => 4가 나와야함. 4편 중 4번 이상 인용된 논문이 4편 이상이므로 4가 정답. 처음에 배열..
programmers.co.kr/learn/courses/30/parts/12117 1. 문제 2. 풀이 import java.util.*; class Solution { public int solution(int[] scoville, int K) { int answer = -1; PriorityQueue queue = new PriorityQueue(); for (int i = 0; i 1) { count++; int first = queue.poll(); int second = queue.poll(); queue.add(first + (seco..
programmers.co.kr/learn/courses/30/lessons/42586 1. 문제 2. 풀이 import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { Stack stack = new Stack(); int prevMaxDay = 0; for (int i = 0; i < progresses.length; i++) { int progress = progresses[i]; int speed = speeds[i]; // j를 0 ~ 99까지 해보면서 for (int j = 0; j < 100; j++) { // 현재 진행률과 속도 * j를 더한 것이 100이 넘으면 if ((progres..
- Total
- Today
- Yesterday
- 코딩테스트 고득점 Kit
- 스택/큐
- 프로그래머스 Level 1
- a
- 프로그래머스 Level 3
- Asynchronous
- 동기
- 인터셉터
- 필터
- Handler Interceptor
- 논블로킹
- blocking
- 해시
- Synchronous
- Filter
- 블로킹
- non-blocking
- 비동기
- 핸들러 인터셉터
- 프로그래머스
- http://www.nextree.co.kr/p6960/
- 프로그래머스 Level 2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |