TIL/코딩테스트 연습문제

[내일배움캠프] 사전캠프 코드카타 6번 문제

통촏하여주시옵소서 2024. 8. 10. 00:57

TIL 제출하기(매일 23:59 까지)
❤️‍🔥TIL : Today I Learned

매일 저녁, 공부를 마무리하면서 제출해주세요.
하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)

[TIL을 쓰는 이유]
1. 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기
2. TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기
3. 꾸준히 기록을 남기는 습관 가지기


알고리즘 코드카타

자바로 주어진 문제를 해결하기 위한 solution 함수를 다음과 같이 작성할 수 있습니다. 이 함수는 두 정수를 입력받아 그 합을 반환합니다.

public class Solution {
    public int solution(int num1, int num2) {
        return num1 + num2;
    }

    public static void main(String[] args) {
        Solution sol = new Solution();

        // 예제 테스트 케이스
        int result1 = sol.solution(2, 3);
        int result2 = sol.solution(100, 2);

        // 결과 출력
        System.out.println("result1: " + result1); 
        // 출력: result1: 5
        System.out.println("result2: " + result2); 
        // 출력: result2: 102
    }
}

위의 자바 코드는 다음과 같은 요소들로 구성되어 있습니다:

  1. solution 메서드: 이 메서드는 두 정수 num1과 num2를 매개변수로 받아서, 두 정수의 합을 반환합니다.
  2. main 메서드: solution 메서드를 테스트하기 위해 포함되어 있습니다. 이 메서드는 두 개의 예제 입력을 테스트하고 그 결과를 출력합니다.

SQL 코드카타

동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL 쿼리를 작성하는 문제입니다. 이 문제를 해결하기 위해 다음과 같은 단계를 거쳐야 합니다.

  1. ANIMAL_INS 테이블에서 이름이 NULL이 아닌 레코드를 선택합니다.
  2. 이름별로 그룹화하여 해당 이름이 몇 번 사용되었는지 계산합니다.
  3. 두 번 이상 사용된 이름만 필터링합니다.
  4. 결과를 이름순으로 정렬합니다.

이 과정을 SQL로 표현하면 다음과 같은 쿼리가 됩니다:

SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME;

이 쿼리의 각 부분을 설명해보겠습니다.

  • SELECT NAME, COUNT(NAME) AS COUNT: NAME 컬럼과 각 이름의 등장 횟수를 계산합니다.
  • FROM ANIMAL_INS: ANIMAL_INS 테이블에서 데이터를 가져옵니다.
  • WHERE NAME IS NOT NULL: 이름이 NULL이 아닌 레코드만 선택합니다.
  • GROUP BY NAME: 이름별로 그룹화하여 각 이름의 등장 횟수를 계산할 수 있도록 합니다.
  • HAVING COUNT(NAME) >= 2: 등장 횟수가 두 번 이상인 이름만 선택합니다.
  • ORDER BY NAME: 결과를 이름순으로 정렬합니다.

이 쿼리를 실행하면 원하는 결과를 얻을 수 있습니다. 예를 들어, 다음과 같은 테이블이 있다고 가정할 때:

ANIMAL_ID   ANIMAL_TYPE  DATETIME            INTAKE_CONDITION  NAME    SEX_UPON_INTAKE
A396810     Dog          2016-08-22 16:13:00 Injured           Raven   Spayed Female
A377750     Dog          2017-10-25 17:17:00 Normal            Lucy    Spayed Female
A355688     Dog          2014-01-26 13:48:00 Normal            Shadow  Neutered Male
A399421     Dog          2015-08-25 14:08:00 Normal            Lucy    Spayed Female
A400680     Dog          2017-06-17 13:29:00 Normal            Lucy    Spayed Female
A410668     Cat          2015-11-19 13:41:00 Normal            Raven   Spayed Female

이 쿼리를 실행하면 다음과 같은 결과가 나옵니다:

NAME    COUNT
Lucy    3
Raven   2

느낀점

오늘은 왠지 놀고싶다
[5일차] 오늘은 08.02(금)_SQL이랑 언어알고리즘을 같이 담아서 썻다