TIL 제출하기 (2024-09-11)
오늘의 공부를 마무리하면서 작성한 내용입니다.
알고리즘 문제
주어진 문제는 두 개의 입력값을 받고, 첫 번째 입력값 x
로부터 시작하여 x
씩 증가하는 수열을 n
개 만들어 리스트로 반환하는 것입니다. 즉, x
와 n
이 주어졌을 때, x
부터 x*n
까지 x
간격으로 증가하는 수열을 만들라는 요구입니다.
조건:
x
는 -10,000,000 이상, 10,000,000 이하인 정수n
은 1 이상 1,000 이하인 자연수
입출력 예시
- 예시 1:
x = 2, n = 5
→ [2, 4, 6, 8, 10] - 예시 2:
x = 4, n = 3
→ [4, 8, 12] - 예시 3:
x = -4, n = 2
→ [-4, -8]
해결 방법
이 문제는 매우 간단하게 반복문 또는 스트림을 통해 해결할 수 있습니다. x
부터 시작하여, x
씩 증가하는 수를 n
개 생성해야 하기 때문에 이를 위한 반복 구문을 사용하면 됩니다. 예를 들어, x * i
를 이용하여 i가 1부터 n까지 증가하도록 설정하면 원하는 리스트를 만들 수 있습니다.
자바 코드 작성
import java.util.List;
import java.util.ArrayList;
public class Solution {
public static List<Long> solution(int x, int n) {
List<Long> result = new ArrayList<>();
for (int i = 1; i <= n; i++) {
result.add((long) x * i); // 각 단계에서 x의 배수를 추가
}
return result;
}
public static void main(String[] args) {
// 테스트 예시
System.out.println(solution(2, 5)); // [2, 4, 6, 8, 10]
System.out.println(solution(4, 3)); // [4, 8, 12]
System.out.println(solution(-4, 2)); // [-4, -8]
}
}
코드 설명
- 리스트 생성:
ArrayList<Long>
타입을 이용해 결과를 저장할 리스트를 생성합니다. 여기서Long
타입을 사용하는 이유는 큰 수를 처리하기 위해서입니다. 예를 들어,x
가 매우 클 때 연산 결과가int
범위를 넘어갈 수 있기 때문에long
으로 처리하는 것이 안전합니다. - 반복문을 통한 리스트 채우기:
for
문을 통해 1부터n
까지 증가하면서, 각 단계에서x * i
의 값을 리스트에 추가합니다. - 출력 및 테스트:
main
함수에서 테스트 케이스를 실행하여 함수가 올바르게 작동하는지 확인합니다.
성능 최적화 및 고려 사항
이 문제는 반복문을 n
번 실행하는 방식으로 매우 간단합니다. 주어진 제한 조건 내에서는 효율적인 성능을 보장할 수 있습니다.
물론입니다! 아래와 같이 목차를 포함하여 문제 설명과 SQL 쿼리를 정리했습니다.
SQL 문제
목차
문제 설명
다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE 테이블입니다. FOOD_WAREHOUSE 테이블은 다음과 같은 구조를 가지고 있습니다:
Column name | Type | Nullable |
---|---|---|
WAREHOUSE_ID | VARCHAR(10) | FALSE |
WAREHOUSE_NAME | VARCHAR(20) | FALSE |
ADDRESS | VARCHAR(100) | TRUE |
TLNO | VARCHAR(20) | TRUE |
FREEZER_YN | VARCHAR(1) | TRUE |
각 열의 의미는 다음과 같습니다:
- WAREHOUSE_ID: 창고 ID
- WAREHOUSE_NAME: 창고 이름
- ADDRESS: 창고 주소
- TLNO: 전화번호
- FREEZER_YN: 냉동시설 여부
문제
FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
SQL 쿼리
다음 SQL 쿼리를 사용하여 문제를 해결할 수 있습니다:
SELECT
WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
COALESCE(FREEZER_YN, 'N') AS FREEZER_YN
FROM
FOOD_WAREHOUSE
WHERE
ADDRESS LIKE '경기도%'
ORDER BY
WAREHOUSE_ID ASC;
실행 결과 예시
위 SQL 쿼리를 실행하면 다음과 같은 결과가 출력됩니다:
WAREHOUSE_ID | WAREHOUSE_NAME | ADDRESS | FREEZER_YN |
---|---|---|---|
WH0001 | 창고_경기1 | 경기도 안산시 상록구 용담로 141 | Y |
WH0003 | 창고_경기2 | 경기도 이천시 마장면 덕평로 811 | N |
WH0004 | 창고_경기3 | 경기도 김포시 대곶면 율생중앙로205번길 | N |
이 SQL 쿼리를 사용하여 경기도에 위치한 식품 창고의 정보를 손쉽게 조회할 수 있습니다.
TIL 제출하기(매일 23:59 까지)
❤️🔥TIL : Today I Learned
매일 저녁, 공부를 마무리하면서 제출해주세요.
하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)
[TIL을 쓰는 이유]
1. 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기
2. TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기
3. 꾸준히 기록을 남기는 습관 가지기
'TIL > 스파르타 코드카타' 카테고리의 다른 글
[내일배움캠프] 본캠프 코드카타 18번 문제 (0) | 2024.09.26 |
---|---|
[내일배움캠프] 본캠프 코드카타 17번 문제 (0) | 2024.09.12 |
[내일배움캠프] 사전캠프 코드카타 36번 문제 (0) | 2024.09.03 |
[내일배움캠프] 사전캠프 코드카타 35번 문제 (0) | 2024.09.03 |
[내일배움캠프] 사전캠프 코드카타 34번 문제 (0) | 2024.09.03 |