본문 바로가기

코딩 테스트27

[프로그래머스/Lv.2] 타겟 넘버 1) DFS함수를 numbers 크기만큼 재귀한다. 이때 총 합이 target과 동일하면 answer을 카운팅 후 numbers 크기만큼 재귀했다면 재귀를 종료한다.2) DFS를 호출 할 때 마다 index값을 올려준다. '-' or '+' 연산을 수행한다. (반복)  class Solution { int arr[]; int targetNum, answer; int arrLength; public int solution(int[] numbers, int target) { answer = 0; targetNum = target; arrLength = numbers.length; arr = new int[arrLength].. 2025. 2. 13.
[프로그래머스/Lv.2] 프로세스 1) 실행 대기 큐 용도의 Queue(q)에 담을 클래스 MyMember를 사용해 문제에서 주어진 순서대로 q에 담는다.2) 우선순위를 내림차순으로 정렬할 Heap(pq)에 담는다.3) pq에서 가장 큰 우선순위 값과 q에서 뽑은 MyMember의 priority값이 같으면 q에서 해당 인스턴스를 제거하고 그렇지 않으면 다시 q에 넣는다.(반복) import java.util.*;class Solution { static class MyMember{ int priority; int location; public MyMember(int priority, int location) { this.priority = priority; .. 2025. 2. 13.
[프로그래머스/Lv.2] 더 맵게 1) 작은수부터 계속해서 조회해서 값을 추가 비교 하기 때문에 해당 문제에 효율적인 자료구조 PriorityQueue를 사용.2) peek()한 갑이 K보다 클때까지 무한 반복하되 PriorityQueue의 사이즈가 1개라면 더 이상 섞을 수 없으니 -1 반환.3) PriorityQueue에서 2개의 값을 꺼내어 제시한 연산 진행후 add() 및 섞은 횟수 +1.  import java.util.*;class Solution { public int solution(int[] scoville, int K) { int answer = 0; PriorityQueue priorityQueue = new PriorityQueue(); for(int i = .. 2025. 2. 4.
[프로그래머스/Lv.1] 두 개 뽑아서 더하기 1) 주어지는 수가 0~100 범위이기 때문에 두수의 합의 범위는 0~200 이므로 메모리 사용이 크지 않아 접근이 빠른 배열을 사용.2) cases에 두수의 합과 동일한 인덱스에 1을 대입한다.3) cases 배열을 순회해서 해당 인덱스의 값이 1이라면 두수의 합이 해당 인덱스인 경우가 존재하는 것이므로 answer에 추가한다. (0번 인덱스 부터 추가하기 때문에 따로 정렬을 하지 않아도 된다.) class Solution { public int[] solution(int[] numbers) { int size = 0; int[] cases = new int[200]; for(int j = 0; j 2025. 2. 4.
[프로그래머스/Lv.2] 카펫 1) 정사각형 혹은 가로가 긴 직사각형 이기 때문에 두 변의 합은 brwon / 2 + 2 이다.2) yellow가 1 이상 이기 때문에 가로 및 세로의 길이는 3 이상이여야 한다.3) 가능한 가로 세로 경우의 수를 구해서 yellow의 격자의 수 와 비교하여 동일하면 return 한다. class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int widthAndHeight = brown / 2 + 2; for(int height = widthAndHeight - 3; height > 0; --height) { .. 2025. 2. 4.
[프로그래머스/Lv.2] 상품 별 오프라인 매출 구하기 SELECT T1.PRODUCT_CODE, SUM(T2.SALES_AMOUNT * T1.PRICE) as SALESFROM PRODUCT as T1LEFT JOIN OFFLINE_SALE as T2ON T1.PRODUCT_ID = T2.PRODUCT_IDgroup by T1.PRODUCT_CODEorder by SALES DESC, T1.PRODUCT_CODE ASC SUM 안에 테이블 별 컬럼을 가져와 * 연산을 수행한 누적값을 구할 수 있다. 2025. 2. 3.