TIL 제출하기(매일 23:59 까지)
❤️🔥TIL : Today I Learned
매일 저녁, 공부를 마무리하면서 제출해주세요.
하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)
[TIL을 쓰는 이유]
1. 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기
2. TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기
3. 꾸준히 기록을 남기는 습관 가지기
알고리즘 코드카타
아래는 정수를 담고 있는 배열 arr의 평균값을 구하는 함수 solution을 Java로 작성한 코드와 함께 블로그에 쓸 글 내용을 정리한 것입니다.
Java로 배열의 평균값 구하기
문제 설명
정수를 담고 있는 배열 arr의 평균값을 반환하는 함수 solution을 완성해보세요.
제한사항
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
- arr이 [1, 2, 3, 4]인 경우, 반환값은 2.5입니다.
- arr이 [5, 5]인 경우, 반환값은 5입니다.
코드 구현
Java로 배열의 평균값을 구하기 위해서는 다음과 같은 단계를 따릅니다.
- 배열의 모든 원소를 더합니다.
- 배열의 길이로 나누어 평균값을 구합니다.
다음은 이러한 단계를 코드로 구현한 예제입니다.
public class Solution {
public static double solution(int[] arr) {
// 배열의 모든 원소를 더할 변수를 초기화합니다.
int sum = 0;
// 배열의 모든 원소를 순회하면서 더합니다.
for (int num : arr) {
sum += num;
}
// 배열의 길이로 나누어 평균값을 구하고 반환합니다.
return (double) sum / arr.length;
}
public static void main(String[] args) {
// 테스트 케이스
int[] arr1 = {1, 2, 3, 4};
int[] arr2 = {5, 5};
// 결과 출력
System.out.println(solution(arr1)); // 2.5
System.out.println(solution(arr2)); // 5.0
}
}
설명
1. 배열의 모든 원소 더하기
int sum = 0;
for (int num : arr) {
sum += num;
}
위의 코드는 for-each 문을 사용하여 배열의 모든 원소를 더하는 부분입니다. sum 변수에 배열의 각 원소를 더하여 총합을 구합니다.
2. 배열의 길이로 나누어 평균값 구하기
return (double) sum / arr.length;
배열의 총합을 배열의 길이로 나누어 평균값을 구합니다. 이때, 정수형 나눗셈을 피하기 위해 sum을 double 타입으로 형변환하여 나눗셈을 수행합니다.
SQL 코드카타
주어진 문제는 동물 보호소의 데이터를 담고 있는 ANIMAL_INS 테이블에서 이름에 'el'이 포함된 개의 아이디와 이름을 조회하는 SQL 쿼리를 작성하는 것입니다. 결과는 이름 순으로 정렬되어야 하며, 대소문자를 구분하지 않습니다.
다음은 주어진 문제에 대한 SQL 쿼리와 각 부분에 대한 설명입니다.
SQL 쿼리
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog'
AND LOWER(NAME) LIKE '%el%'
ORDER BY NAME;
쿼리 설명
- SELECT 문:
- SELECT ANIMAL_ID, NAME: ANIMAL_INS 테이블에서 ANIMAL_ID와 NAME 컬럼을 선택합니다.
- FROM 문:
- FROM ANIMAL_INS: 데이터를 조회할 테이블은 ANIMAL_INS입니다.
- WHERE 문:
- ANIMAL_TYPE = 'Dog': ANIMAL_TYPE이 'Dog'인 행만 선택합니다.
- LOWER(NAME) LIKE '%el%': NAME 컬럼의 값을 소문자로 변환한 후, 'el'이 포함된 이름을 찾습니다. LIKE 연산자는 부분 문자열 매칭을 수행하며, %는 0개 이상의 임의의 문자와 매칭됩니다.
- ORDER BY 문:
- ORDER BY NAME: 조회된 결과를 NAME 컬럼을 기준으로 오름차순 정렬합니다.
예시 데이터
예시 데이터는 다음과 같습니다:
ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A355753 | Dog | 2015-09-10 13:14:00 | Normal | Elijah | Neutered Male |
---|---|---|---|---|---|
A352872 | Dog | 2015-07-09 17:51:00 | Aged | Peanutbutter | Neutered Male |
A353259 | Dog | 2016-05-08 12:57:00 | Injured | Bj | Neutered Male |
A373219 | Cat | 2014-07-29 11:43:00 | Normal | Ella | Spayed Female |
A382192 | Dog | 2015-03-13 13:14:00 | Normal | Maxwell 2 | Intact Male |
쿼리 결과
위의 쿼리를 실행하면 다음과 같은 결과가 나옵니다:
ANIMAL_IDNAME
A355753 | Elijah |
---|---|
A382192 | Maxwell 2 |
일일과제, Lv1. 랜덤 닉네임 생성기
package Chapter04;
import java.util.Random;
public class Practice02 {
private String[] firstList = {"기철초풍", "멋있는", "재미있는"};
private String[] secondList = {"도전적인", "노란색의", "바보같은"};
private String[] thirdList = {"돌고래", "개발자", "오랑우탄"};
public String createRandomNickname() {
// Create a Random object
Random random = new Random();
// Generate random indexes for each list
int index1 = random.nextInt(firstList.length);
int index2 = random.nextInt(secondList.length);
int index3 = random.nextInt(thirdList.length);
// Create the random nickname
String randomNickname = firstList[index1] + " " + secondList[index2] + " " + thirdList[index3];
return randomNickname;
}
public static void main(String[] args) {
Practice02 randomNicknameCreator = new Practice02();
String myNickname = randomNicknameCreator.createRandomNickname();
System.out.println(myNickname);
}
}
느낀점
점점 지친다
[10일차] 알고리즘 코드카타 08.07(수)_SQL이랑 언어알고리즘을 같이 담아서 썻다
'TIL > 스파르타 코드카타' 카테고리의 다른 글
[내일배움캠프] 사전캠프 코드카타 14번 문제 (0) | 2024.08.10 |
---|---|
[내일배움캠프] 사전캠프 코드카타 13번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 11번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 10번 문제 (0) | 2024.08.10 |
[내일배움캠프] 사전캠프 코드카타 9번 문제 (0) | 2024.08.10 |