화창한 아침이 밝았다. 구름 한점없이 푸르른 하늘과 태양빛이 나를 반긴다
온화한 햇살 아래, 오늘도 코드카타를 진행해보자
알고리즘 문제(Python)
알고리즘 문제: 문자열 다루기 기본
문제를 파악하자
문자열 s의 길이가 4 혹은 6, 숫자로만 구성되어있는지 확인
문자가 들어가면 False를 숫자만 들어가면 True를 출력한다
어디까지 생각해 보았나?
길이를 구하는 len()까지만 생각해냈고.. 어렵지는 않다 이거는
하지만 출력하려는 쪽이 문제. 숫자형은 int로 바꿔서 어찌해볼수는 있었지만
그 후가 문제라서..막혔다(답안 혹은 힌트를 볼 수 밖에 없었음)
어떻게 풀어야할까?
길이를 구해야하므로 len()을 쓰고
숫자열, 문자열 확인을 위한 isdigit()를 쓴다
자, 그럼 isdigit()는 정확히 무엇일까?
isdigit()
이 메서드는 입력값이 숫자로만 구성되어있는지 확인한다
출력은 참, 거짓의 값인 'bool' 자료형으로 나타낸다
문제를 풀어보자
answer = ((len(s) == 4 or len(s) == 6) and s.isdigit())
s의 길이가 4 이거나 6이고, s를 숫자형을 판별할 때, answer라는 변수에 담는다
SQL 문제
SQL 문제: 있었는데요 없었습니다
문제를 파악하자
보호시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회
어디까지 생각해 보았나?
병합하는 구문 join을 쓰고, 조회하는 구문은 아이디와 이름
조건에는 보호일과 입양일을 비교해야함
어떻게 풀어야할까?
두 테이블을 병합하는데, 공통된 값에서 찾아내야 하므로
inner join을 사용하도록 한다
문제를 풀어보자
조회할 컬럼: a.animal_id, a.name
가져올 테이블: animal_ins, animal_outs
조건을 지정할 컬럼(where): a.datetime, b.datetime
정렬할 컬럼(order by): a.animal_id
inner join
animal_ins as a inner join animal_outs as b on a.animal_id=b.animal_id
두 테이블의 공통된 정보를 가져와야하므로 inner join
공통된 컬럼은 animal_id로 이걸로 묶어준다.(어제에 했던 문제와 똑같은 방식 join은 이렇다)
각 절별 조회
select
a.animal_id : a테이블의 animal_id
a.name : a테이블의 name
where
a.datetime > b.datetime
a테이블의 datetime이 b테이블의 datetime 보다 커야한다
이유는 입양일이 보호시작일보다 빨라야하므로, 당연히 값이 입양일이 작다.
order by
a.datetime : 보호시작일이 빠른순으로 조회
'[내일배움캠프 코드카타]' 카테고리의 다른 글
[QA/QC_2기]아침을 깨우는 코드카타(6-16) (1) | 2025.06.19 |
---|---|
[QA/QC_2기]아침을 깨우는 코드카타(6-15) (2) | 2025.06.18 |
[QA/QC_2기]아침을 깨우는 코드카타(6-13) (0) | 2025.06.16 |
[QA/QC_2기]아침을 깨우는 코드카타(6-12) (1) | 2025.06.13 |
[QA/QC_2기]아침을 깨우는 코드카타(6-11) (2) | 2025.06.12 |