[내일배움캠프 코드카타]

[QA/QC_2기]아침을 깨우는 코드카타(6-14)

mulmoknnhama 2025. 6. 17. 20:51

화창한 아침이 밝았다. 구름 한점없이 푸르른 하늘과 태양빛이 나를 반긴다

온화한 햇살 아래, 오늘도 코드카타를 진행해보자


알고리즘 문제(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 : 보호시작일이 빠른순으로 조회