TIL 제출하기(매일 23:59 까지)
❤️🔥TIL : Today I Learned
매일 저녁, 공부를 마무리하면서 제출해주세요.
하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)
[TIL을 쓰는 이유]
1. 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기
2. TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기
3. 꾸준히 기록을 남기는 습관 가지기
문제 설명
알고리즘 코드카타
정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 반환하는 함수를 작성하는 문제입니다.
제한사항
- -50000 ≤ num1 ≤ 50000
- -50000 ≤ num2 ≤ 50000
입출력 예
num1num2result
2 | 3 | -1 |
---|---|---|
100 | 2 | 98 |
입출력 예 설명
예제 1
- num1이 2이고 num2가 3이므로 2 - 3 = -1을 반환합니다.
예제 2
- num1이 100이고 num2가 2이므로 100 - 2 = 98을 반환합니다.
해결 방법
주어진 두 정수 num1과 num2를 뺀 값을 반환하는 간단한 자바 함수를 작성하면 됩니다. 입력 값의 범위는 -50000에서 50000 사이로 제한되어 있으므로, 이 범위를 벗어나는 값에 대한 처리는 필요 없습니다.
자바 코드
public class Solution {
public int solution(int num1, int num2) {
// 입력값 범위 체크
if (check(num1) && check(num2)) {
// 연산
return num1 - num2;
}
// 범위 밖의 값이 주어졌을 경우 예외 처리를 위한 반환값 (문제의 조건상 필요하지 않음)
return 0;
}
private boolean check(int num) {
return num >= -50000 && num <= 50000;
}
public static void main(String[] args) {
Solution solution = new Solution();
// 테스트 케이스 1
int result1 = solution.solution(2, 3);
System.out.println("결과: " + result1); // 출력: 결과: -1
// 테스트 케이스 2
int result2 = solution.solution(100, 2);
System.out.println("결과: " + result2); // 출력: 결과: 98
}
}
설명
- solution 메서드:
- num1과 num2의 유효성을 체크한 후, 두 숫자의 차를 계산하여 반환합니다.
- check 메서드:
- 입력값 num이 -50000 이상 50000 이하인지 확인합니다.
- main 메서드:
- Solution 클래스의 인스턴스를 생성하고, 예제에 주어진 테스트 케이스들을 실행하여 결과를 출력합니다.
문제
동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성하는 문제입니다. 단, ID는 오름차순 정렬되어야 합니다.
테이블 구조
- ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담고 있습니다.
- 각 컬럼의 정보는 다음과 같습니다:
- ANIMAL_ID: 동물의 아이디 (VARCHAR, NULL 불가)
- ANIMAL_TYPE: 생물 종 (VARCHAR, NULL 불가)
- DATETIME: 보호 시작일 (DATETIME, NULL 불가)
- INTAKE_CONDITION: 보호 시작 시 상태 (VARCHAR, NULL 불가)
- NAME: 이름 (VARCHAR, NULL 가능)
- SEX_UPON_INTAKE: 성별 및 중성화 여부 (VARCHAR, NULL 불가)
예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면:
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A434523 | Cat | 2015-11-20 14:18:00 | Normal | NULL | Spayed Female |
---|---|---|---|---|---|
A562649 | Dog | 2014-03-20 18:06:00 | Sick | NULL | Spayed Female |
A524634 | Dog | 2015-01-02 18:54:00 | Normal | *Belle | Intact Female |
A465637 | Dog | 2017-06-04 08:17:00 | Injured | *Commander | Neutered Male |
이름이 있는 동물의 ID는 A524634와 A465637입니다. 따라서 SQL을 실행하면 다음과 같이 출력되어야 합니다.
ANIMAL_ID
A465637 |
---|
A524634 |
SQL 작성
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID;
이 SQL 문은 다음과 같은 순서로 동작합니다:
- FROM ANIMAL_INS: ANIMAL_INS 테이블에서 데이터를 가져옵니다.
- WHERE NAME IS NOT NULL: NAME 컬럼이 NULL이 아닌 행만 선택합니다.
- SELECT ANIMAL_ID: ANIMAL_ID 컬럼을 선택합니다.
- ORDER BY ANIMAL_ID: 결과를 ANIMAL_ID 기준으로 오름차순 정렬합니다.
이렇게 작성된 SQL 문은 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 오름차순으로 조회합니다.
느낀점
항상 그렇지만 시험 문제(알고리즘 포함)은 늘 어려운거 같다.
[1일차] 알고리즘 코드카타 07.29(월)_SQL이랑 언어알고리즘을 같이 담아서 썻다
'TIL > 스파르타 코드카타' 카테고리의 다른 글
[내일배움캠프] 사전캠프 코드카타 5번 문제 (0) | 2024.08.10 |
---|---|
[내일배움캠프] 사전캠프 코드카타 4번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 3번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 2번 문제 (0) | 2024.08.09 |
[내일배움캠프] 스파르타 양식 (0) | 2024.08.09 |