알고리즘 문제: 자릿수를 큰 순서대로 정렬하기
이번 문제는 정수 n
의 각 자릿수를 큰 순서부터 작은 순서대로 정렬하여 새로운 정수를 만드는 것입니다.
문제 분석
n
을 문자열로 변환해 각 자릿수를 분리합니다.- 분리된 숫자들을 내림차순으로 정렬합니다.
- 정렬된 문자열을 다시 숫자로 변환하여 반환합니다.
제약 사항
n
은 1 이상 8,000,000,000 이하의 자연수입니다.
코드 구현 (Java)
import java.util.Arrays;
import java.util.Collections;
public class DigitSorter {
public long solution(long n) {
// 1. 숫자를 문자열로 변환하고 문자 배열로 만듦
String[] digits = String.valueOf(n).split("");
// 2. 배열을 내림차순으로 정렬
Arrays.sort(digits, Collections.reverseOrder());
// 3. 정렬된 배열을 다시 하나의 문자열로 합치고 숫자로 변환
String sortedString = String.join("", digits);
return Long.parseLong(sortedString);
}
public static void main(String[] args) {
DigitSorter sorter = new DigitSorter();
System.out.println(sorter.solution(118372)); // 873211 출력
}
}
코드 설명
String.valueOf(n).split("")
을 사용해n
의 각 자릿수를 문자열 배열로 변환합니다.Arrays.sort(digits, Collections.reverseOrder())
를 사용해 배열을 내림차순으로 정렬합니다.- 정렬된 배열을 문자열로 합친 후,
Long.parseLong()
으로 숫자로 변환하여 반환합니다.
예시 출력
n = 118372
일 때, 출력은873211
이 됩니다.
SQL 문제: FOOD_PRODUCT 테이블에서 가장 비싼 식품 정보 조회하기
이번 문제는 FOOD_PRODUCT
테이블에서 가격이 가장 높은 식품의 정보를 조회하는 것입니다. 해당 식품의 PRODUCT_ID
, PRODUCT_NAME
, PRODUCT_CD
, CATEGORY
, PRICE
를 조건에 맞게 출력해야 합니다.
문제 분석
FOOD_PRODUCT
테이블에서 가격(PRICE
)이 가장 높은 식품을 조회해야 합니다.- 조회해야 할 컬럼은
PRODUCT_ID
,PRODUCT_NAME
,PRODUCT_CD
,CATEGORY
,PRICE
입니다.
접근 방법
MAX(PRICE)
를 통해 가장 높은 가격을 찾아냅니다.WHERE
절을 사용해PRICE
가MAX(PRICE)
와 같은 행만 필터링합니다.
SQL 쿼리
다음은 SQL 쿼리 작성 예시입니다:
SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
쿼리 설명
MAX(PRICE)
를 이용해FOOD_PRODUCT
테이블에서 가장 높은 가격을 가져옵니다.WHERE
절을 사용해PRICE
가MAX(PRICE)
와 같은 행만 필터링하여 출력합니다.
예시 출력
PRODUCT_ID | PRODUCT_NAME | PRODUCT_CD | CATEGORY | PRICE |
---|---|---|---|---|
P0020 | 맛있는산초유 | CD_OL00010 | 식용유 | 6500 |
위와 같은 출력이 예상되며, PRICE
가 가장 높은 식품 정보가 조회됩니다.
'TIL > 스파르타 코드카타' 카테고리의 다른 글
[내일배움캠프] 본캠프 코드카타 19번 문제 (0) | 2024.10.28 |
---|---|
[내일배움캠프] 본캠프 코드카타 18번 문제 (0) | 2024.09.26 |
[내일배움캠프] 본캠프 코드카타 17번 문제 (0) | 2024.09.12 |
[내일배움캠프] 본캠프 코드카타 16번 문제 (0) | 2024.09.11 |
[내일배움캠프] 사전캠프 코드카타 36번 문제 (0) | 2024.09.03 |