TIL 제출하기(매일 23:59 까지)
❤️🔥TIL : Today I Learned
매일 저녁, 공부를 마무리하면서 제출해주세요.
하루에 1%씩만 나아가도 4개월 동안 쌓이면 꽤 덩치가 커진답니다 :)
[TIL을 쓰는 이유]
1. 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기
2. TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기
3. 꾸준히 기록을 남기는 습관 가지기
알고리즘 코드카타
문자열 숫자 확인 문제 해결하기
이번 포스트에서는 주어진 문자열 s가 길이가 4 혹은 6이고, 숫자로만 구성돼 있는지를 확인하는 문제를 해결해보겠습니다.
문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼 있는지 확인해주는 함수 solution을 완성하세요. 예를 들어, s가 "a234"이면 False를 반환하고, "1234"라면 True를 반환하면 됩니다.
제한 사항
- s는 길이 1 이상, 길이 8 이하인 문자열입니다.
- s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
입출력 예
sreturn
"a234" | false |
---|---|
"1234" | true |
해결 방법
이 문제를 해결하기 위해서는 다음과 같은 단계를 밟아야 합니다.
- 문자열 s의 길이가 4 혹은 6인지 확인합니다.
- 문자열 s가 오직 숫자로만 구성돼 있는지 확인합니다.
아래는 이 문제를 해결하기 위한 Java 코드입니다.
public class Solution {
public boolean solution(String s) {
// 문자열의 길이가 4 혹은 6이 아닌 경우 false 반환
if (s.length() != 4 && s.length() != 6) {
return false;
}
// 문자열이 숫자로만 구성되어 있는지 확인
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(s.charAt(i))) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println(sol.solution("a234")); // false
System.out.println(sol.solution("1234")); // true
}
}
코드 설명
- s.length() != 4 && s.length() != 6을 통해 문자열의 길이가 4 혹은 6인지 확인합니다. 그렇지 않은 경우 false를 반환합니다.
- for 루프를 사용하여 문자열의 각 문자가 숫자인지 확인합니다. Character.isDigit(s.charAt(i)) 메서드를 사용하여 숫자가 아닌 문자가 발견되면 false를 반환합니다.
- 모든 조건을 만족하면 true를 반환합니다.
SQL 코드카타
보호소에서 중성화 수술을 거친 동물 정보를 조회하는 SQL 쿼리를 작성하기 위해, 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 정보를 찾아야 합니다.
문제 해결 방법
- 중성화 여부 판단:
- 보호소에 들어올 당시 중성화 여부는 SEX_UPON_INTAKE 컬럼을 통해 확인할 수 있습니다.
- 보호소를 나갈 당시 중성화 여부는 SEX_UPON_OUTCOME 컬럼을 통해 확인할 수 있습니다.
- 조인 및 필터링:
- ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 ANIMAL_ID를 기준으로 조인합니다.
- SEX_UPON_INTAKE이 'Intact Male' 또는 'Intact Female'이고 SEX_UPON_OUTCOME이 'Neutered Male' 또는 'Spayed Female'인 동물을 필터링합니다.
- 정렬:
- 결과는 ANIMAL_ID를 기준으로 오름차순 정렬합니다.
SQL 쿼리
SELECT
INS.ANIMAL_ID,
INS.ANIMAL_TYPE,
INS.NAME
FROM
ANIMAL_INS INS
JOIN
ANIMAL_OUTS OUTS
ON
INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE
(INS.SEX_UPON_INTAKE = 'Intact Male' OR INS.SEX_UPON_INTAKE = 'Intact Female')
AND (OUTS.SEX_UPON_OUTCOME = 'Neutered Male' OR OUTS.SEX_UPON_OUTCOME = 'Spayed Female')
ORDER BY
INS.ANIMAL_ID;
쿼리 설명
- SELECT 문:
- INS.ANIMAL_ID, INS.ANIMAL_TYPE, INS.NAME 컬럼을 선택합니다.
- FROM 문:
- ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 기준으로 선택합니다.
- JOIN 문:
- 두 테이블을 ANIMAL_ID로 조인합니다.
- WHERE 문:
- 보호소에 들어올 당시 중성화되지 않았던 동물 (SEX_UPON_INTAKE이 'Intact Male' 또는 'Intact Female')을 필터링합니다.
- 보호소를 나갈 당시 중성화된 동물 (SEX_UPON_OUTCOME이 'Neutered Male' 또는 'Spayed Female')을 필터링합니다.
- ORDER BY 문:
- 결과를 ANIMAL_ID를 기준으로 오름차순 정렬합니다.
실행 결과
위의 SQL 쿼리를 실행하면, 예시 데이터에 따라 다음과 같은 결과가 나옵니다:
ANIMAL_IDANIMAL_TYPENAME
A382192 | Dog | Maxwell 2 |
---|---|---|
A410330 | Dog | Chewy |
이 쿼리를 통해 보호소에서 중성화 수술을 거친 동물의 정보를 정확하게 조회할 수 있습니다.
느낀점
'TIL > 스파르타 코드카타' 카테고리의 다른 글
[내일배움캠프] 본캠프 코드카타 17번 문제 (0) | 2024.09.12 |
---|---|
[내일배움캠프] 본캠프 코드카타 16번 문제 (0) | 2024.09.11 |
[내일배움캠프] 사전캠프 코드카타 35번 문제 (0) | 2024.09.03 |
[내일배움캠프] 사전캠프 코드카타 34번 문제 (0) | 2024.09.03 |
[내일배움캠프] 사전캠프 코드카타 33번 문제 (0) | 2024.09.03 |