TIL 제출하기(매일 23:59 까지)
❤️🔥TIL : Today I Learned
매일 저녁, 공부를 마무리하면서 제출해주세요.
하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)
[TIL을 쓰는 이유]
1. 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기
2. TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기
3. 꾸준히 기록을 남기는 습관 가지기
알고리즘 코드카타
문제 설명
정수 배열 numbers가 주어졌을 때, 배열의 원소들의 평균값을 구하는 함수를 작성하는 문제입니다. 제한사항으로는 배열의 원소는 0 이상 1,000 이하의 정수이고, 배열의 길이는 1 이상 100 이하입니다. 또한, 결과값의 소수 부분은 .0 또는 .5인 경우만 입력으로 주어집니다.
제한사항
- 0 ≤ numbers의 원소 ≤ 1,000
- 1 ≤ numbers의 길이 ≤ 100
- 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
입출력 예
- 예제 1: numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -> 결과: 5.5
- 예제 2: numbers = [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] -> 결과: 94.0
입출력 예 설명
- 예제 1: numbers의 원소들의 평균값은 5.5입니다.
- 예제 2: numbers의 원소들의 평균값은 94.0입니다.
해결 방법
이 문제를 해결하기 위해서는 다음과 같은 단계로 접근할 수 있습니다:
1. 배열의 모든 원소를 더합니다.
2. 배열의 길이로 나누어 평균값을 구합니다.
3. 평균값을 반환합니다.
자바 코드 구현
다음은 자바로 작성한 해결 방법입니다:
public class Solution {
public double solution(int[] numbers) {
// 배열의 원소 합을 계산
int sum = 0;
for (int number : numbers) {
sum += number;
}
// 배열의 길이로 합을 나누어 평균값을 계산
double average = (double) sum / numbers.length;
return average;
}
// 테스트 메소드
public static void main(String[] args) {
Solution sol = new Solution();
int[] test1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println(sol.solution(test1)); // 출력: 5.5
int[] test2 = {89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99};
System.out.println(sol.solution(test2)); // 출력: 94.0
}
}
설명
- solution 메서드는 배열 numbers를 입력으로 받아 평균값을 반환합니다.
- 배열의 모든 원소를 더한 후, 배열의 길이로 나누어 평균값을 구합니다.
- main 메서드에서 주어진 예제를 통해 함수의 동작을 확인할 수 있습니다.
이 코드는 주어진 입력에 대해 정확한 평균값을 계산하여 반환합니다. main 메서드에서 예제 입력을 테스트하여 올바른 결과가 출력되는지 확인할 수 있습니다.
SQL 코드카타
문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담고 있습니다. 테이블의 구조는 다음과 같습니다:
- ANIMAL_ID: 동물의 아이디
- ANIMAL_TYPE: 생물 종
- DATETIME: 보호 시작일
- INTAKE_CONDITION: 보호 시작 시 상태
- NAME: 이름 (nullable)
- SEX_UPON_INTAKE: 성별 및 중성화 여부
이 문제에서는 보호소에 들어온 동물 중 "젊은 동물"의 아이디와 이름을 조회하는 SQL 문을 작성해야 합니다. 결과는 아이디 순으로 정렬되어야 합니다.
예시
ANIMAL_INS 테이블의 예시는 다음과 같습니다:
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A365172 | Dog | 2014-08-26 12:53:00 | Normal | Diablo | Neutered Male |
---|---|---|---|---|---|
A367012 | Dog | 2015-09-16 09:06:00 | Sick | Miller | Neutered Male |
A365302 | Dog | 2017-01-08 16:34:00 | Aged | Minnie | Spayed Female |
A381217 | Dog | 2017-07-08 09:41:00 | Sick | Cherokee | Neutered Male |
이 중 "젊은 동물"의 INTAKE_CONDITION은 Normal, Sick 등이고, Aged는 포함되지 않습니다. 따라서, 젊은 동물은 Diablo, Miller, Cherokee입니다.
SQL 문 작성
주어진 조건에 맞는 SQL 문은 다음과 같습니다:
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'
ORDER BY ANIMAL_ID;
설명
- SELECT ANIMAL_ID, NAME: 동물의 아이디와 이름을 선택합니다.
- FROM ANIMAL_INS: ANIMAL_INS 테이블에서 데이터를 가져옵니다.
- WHERE INTAKE_CONDITION != 'Aged': 보호 시작 시 상태가 'Aged'가 아닌 동물들을 필터링합니다.
- ORDER BY ANIMAL_ID: 결과를 아이디 순으로 정렬합니다.
이 쿼리를 실행하면 주어진 예시 데이터에 대해 다음과 같은 결과가 나옵니다:
ANIMAL_IDNAME
A365172 | Diablo |
---|---|
A367012 | Miller |
A381217 | Cherokee |
이와 같이, 보호소에 들어온 젊은 동물들의 아이디와 이름을 아이디 순으로 조회할 수 있습니다.
느낀점
음 프젝 주제 정하기도 어렵네 부캠 들어가서도 힘들려나?
[8일차] 알고리즘 코드카타 08.05(월)_SQL이랑 언어알고리즘을 같이 담아서 썻다
'TIL > 스파르타 코드카타' 카테고리의 다른 글
[내일배움캠프] 사전캠프 코드카타 12번 문제 (0) | 2024.08.10 |
---|---|
[내일배움캠프] 사전캠프 코드카타 11번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 9번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 8번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 7번 문제 (0) | 2024.08.10 |