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

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

mulmoknnhama 2025. 6. 8. 16:52

날씨가 쾌청한 오늘. 나들이 가기에 안성맞춤

이런 좋은 주말이여도 코드카타는 계속된다.

한 문제 씩 계속 풀어 나가다 보면 실력이 늘지 않을까?


알고리즘 문제(Python)

알고리즘 문제: 핸드폰 번호 가리기

이 문제는 뒤의 4자리만 나오고 앞자리는 *로 수정해주면 된다


어떻게 풀 것 인가?

슬라이싱을 이용한 뒷자리 4자리 추출, 앞자리 별표처리.

 

어디까지 생각을 해봤나?

그냥 처음부터 막막해서 어떻게 해야할 지 몰랐다.(힌트를 제공받아서 풀 방법을 적을 수 있었음)


풀이를 해보자

다른 사람들이 풀어본 답안을 토대로 적절히 이용했다.

 

phone_number 타입이 숫자이 아닌 문자형인 관계로 따로 변환 처리할 필요가 없다

 

answer = '*' * (len(phone_number) - 4) + phone_number[-4:]

+를 기준으로 해석하겠다.

 

'*' * (len(phone_number) - 4)

phone_number 길이에서 4를 뺀 값(뒤의 4자리를 나타낼 것이므로 4를 감한다)

거기에 *를 곱한다.

 

phone_number[-4:]

phone_number의 뒤에서 4번째부터 끝까지 출력한다(이렇게 되면, 뒤 4자리만 나옴)

그 후, 더한다

 

이것을 answer라는 변수에 담고, answer를 반환.


간단한 것 같은데, 슬라이싱을 할 생각을 안했다는점. 문자형은 곱할 수 있다는 점을 망각했다.

이거는 복습을 안한 본인의 책임이 크다.

그러기에 이 문제를 다시 한번 풀어보고 이런 유형을 대비해두도록 하자


SQL 문제

SQL 문제: 입양 시각 구하기(1)

9시 부터 19시 59분까지, 각 시간대 별 입양 수 구하기

 

조회할 컬럼 : datetime, 수

가져올 테이블 : animal_outs

조건을 지정(where)할 컬럼 : datetime

그룹지을 컬럼 : datetime

정렬할 컬럼 : datetime


컬럼 타입알아보고 수정

datetime 컬럼 - type : datetime*

*바로 쓸 수있다(따로 타입 전환할 필요 없이 시간만 뽑으면 됨)

hour(datetime) : datetime 컬럼의 시간(hour)만 추출한다.


select

count(1) : 전체 컬럼 수 집계

 

where

시간이 9시에서 19시 59분 사이라고 조건을 지정했다

그러면! between 9 and 20을 써주면 된다