본문 바로가기

전체 글66

숫자카드2 https://www.acmicpc.net/problem/10816 * 기본적인 upperBound, lowerBound를 구하는 문제.* binarySearch로 기본적인 코드를 알면 등호만 붙여주면 끝나는 문제다. import java.io.*;import java.util.*;class BOJ10816 { static int size, targetSize; static int[] arr, target; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuild.. 2025. 3. 27.
SQL 고득점 KIT SELECT 문항들 모음 https://school.programmers.co.kr/learn/courses/30/lessons/133024 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr* 인기있는 아이스크림 문제상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요. - 총주문량을 먼저 내림차순 정렬하고, 같다면 출하 번호를 기준으로 오름차순 정렬.- 처음에 같다면 이라는 조건을 따로 작성해야하는 줄 알았다.- 그냥 Order by 절에 연달아서 조건을 작성해주면 끝. SELECT FLAVORFROM FIRST_HALF.. 2025. 3. 20.
가장 긴 증가하는 수열 ( 백준 12015 ) https://www.acmicpc.net/problem/12015 * 입력값이 증가* 이분탐색을 이용해서 증가하는 수열의 길이를 찾는 문제* 보통 이분탐색 ( 매개변수 탐색 x ) 이라고 하면 정렬된 배열에서 값을 찾는 알고리즘이다* 입력값으 정렬은 되어 있지 않으니까 사용이 불가능* 따라서 입력값의 배열의 요소를 한개씩 탐색하며 이분탐색을 넓혀가야한다* 아래는 그 예시이다 import java.io.*;import java.util.*;class BOJ12015 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Sy.. 2025. 3. 15.
가장 긴 증가하는 수열 ( 백준 11053 ) https://www.acmicpc.net/problem/11053 * 시리즈 1, 2가 존재하는데 1은 입력값이 크지않고 2는 입력값이 크다* 따라서 1은 이중 반복문을 사용하는 dp를 사용해도 해결된다* 2는 입력값이 크기 때문에 binarySearch를 이용한 lowerBownd 탐색으로 해결 해야한다 * 기본적으로 브루트포스를 진행하면서 큰값이 나오면 dp 배열에 저장하는 것* 시간 복잡도는 O(N^2)  * i를 중심으로 j는 i보다 작은값만 탐색한다* 그 중에 증가하는 경향 즉 arr[i] > arr[j] 조건이 성립되면 dp[i]에 +1 할당한다.* 아이디어는 좋지만 이중 for() 이기 때문에 입력값이 크게 되면 LIS2를 사용해야함. * 코드import java.io.*;import ja.. 2025. 3. 15.
K번째 수 ( 백준 1300 ) https://www.acmicpc.net/problem/1300 * 처음에 보았을때 이게 왜 이분탐색? 매개변수 탐색? 의문을 가졌던 문제.* 필자도 잘 정리된 T-Story 글을 보고 이해했으니까 궁금해서 본다면 아래 링크로 이동할 것. * 우선 문제를 이해할 필요가 있을것이다. * 만약 N이 4일때는 A[i][j] = i * j 문제에 따라서 위 같은 값을 할당 받는다* 두번째로 B[K] 배열도 오름차순으로 정렬해서 위 같은 값을 할당한다* 문제의 출력값은 B 배열의 K 번째 있는 값을 출력하는 것* 문제 있는 그대로 구현하면 메모리 초과가 뜨면서 실패하게 될 것이다 * 위에 동그라미 되어있는 K=7을 기준으로 설명하면 B[7]는 B 배열에 7번째 있는 값이 4 라는 의미이다* 거꾸로 설명하면 4(.. 2025. 3. 13.
공유기 설치 ( 백준 2110 ) https://www.acmicpc.net/problem/2110 * 문제가 이해 안가서 GPT 코드를 보고 이해한 문제* 문제를 요약하자면 1부터N까지의 좌표가 존재* 집의 갯수 N과 설치해야 할 공유기 K가 첫줄에 주어진다* 둘쨋줄 부터 집의 좌표가 순서대로 주어진다* 출력 조건이 문제에서 나와있기로는 '첫째 줄에 가장 인접한 두 공유기 사이의 최대 거리를 출력한다.' 되어있는데.* 코드를 보고 해석해본 바로는 다음과 같다. * 각 공유기 마다 최대 거리를 계산하고, 그 중에서 공유기 끼리 가장 인접한 거리를 반환하는 것이다.* 따라서 Parametric Search 를 이용해서 공유기 갯수를 비교한다음 범위를 좁혀나가면 되는것이다. * decision() 함수는 늘 그랫듯이 시작과 끝지점을 더해서 .. 2025. 3. 10.