Nonamed Develog
[TIL] AI 웹 개발 7기 사전 캠프 4-3 본문
일일 알고리즘/SQL 코드카타
Q. String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
제한사항
- seoul은 길이 1 이상, 1000 이하인 배열입니다.
- seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
- "Kim"은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
seoul | return |
["Jane", "Kim"] | "김서방은 1에 있다" |
def solution(seoul):
answer = '김서방은 '+str(seoul.index('Kim'))+'에 있다'
return answer
사실 문제를 이해하는게 더 어려웠다. 입출력 예를 보고 Kim의 인덱스만 찾으면 되겠다 생각이 들어서 인덱스를 찾는 함수를 구글링해봤다. .index() 함수를 이용하면 쉽게 해당하는 값의 인덱스를 알아낼 수 있었다. 이를 이용하여 문장을 만들고 인덱스 값에 str()을 붙여줘 완성시켰다.
혹시 내가 배운 것들로만 풀 수 있을까하여 다른 풀이를 확인해봤다.
def solution(seoul):
answer = ''
for i in range(len(seoul)):
if seoul[i] == 'Kim':
answer = f'김서방은 {i}에 있다'
return answer
seoul의 길이만큼 요소를 나열하고 그 중에 Kim에 해당하는 인덱스만 조건문을 뽑아서 f-string으로 하면 풀어낼 수 있었다.
SQL13. 나이 정보가 없는 회원 수 구하기
select count(user_id) users
from user_info
where age is null
# null 값은 '값이 없다'는 의미한다. (0이나 공백은 아님)
# null 값은 비교연산자(<,>,=)를 사용할 수 없다.
# is null 또는 is not null 이라 사용
SQL14. 가장 비싼 상품 구하기
select max(price) max_price
from product
SQL15. NULL 처리하기
select animal_type,
ifnull(name, 'No name') name, # ifnull(컬럼, --): 컬럼이 null이면 --으로 치환
sex_upon_intake
from animal_ins
order by animal_id
#nullif(?, ?): (전자==후자)의 결과가 false면 전자의 값을 치환 true면 null을 치환
SQL16. 경기도에 위치한 식품창고 목록 출력하기
select warehouse_id,
warehouse_name,
address,
ifnull(freezer_yn, 'N')
from food_warehouse
where address like '경기%'
order by warehouse_id
SQL17. 강원도에 위치한 생산 목록 출력하기
select factory_id,
factory_name,
address
from food_factory
where address like '강원%'
order by factory_id
SQL18. DATETIME에서 DATE로 형 변환
select animal_id,
name,
substr(datetime, 1, 10) "날짜"
from animal_ins
order by animal_id
SQL19. 흉부외과 또는 일반외과 의자 목록 출력하기
select dr_name,
dr_id,
mcdp_cd,
date_format(date(hire_ymd), '%Y-%m-%d') hire_ymd
from doctor
where mcdp_cd='cs' or mcdp_cd='gs'
order by hire_ymd desc
#위 날짜 문제와 다르게 date_format(date())을 이용하여 풀어봤다.
SQL20. 가격이 제일 비싼 식품의 정보 출력하기
select *
from food_product
order by price desc
limit 1
SQL21. 이름이 없는 동물의 아이디
select animal_id
from animal_ins
where name is null
order by animal_id desc
SQL22. 조건에 맞는 회원수 구하기
select count(1)
from user_info
where date_format(date(joined), '%Y')='2021' and age between 20 and 29
SQL23. 중성화 여부 파악하기
select animal_id,
name,
case when sex_upon_intake='Neutered male' then 'O'
when sex_upon_intake='Spayed female' then 'O'
else 'X' end "중성화"
from animal_ins
SQL24. 카테고리 별 상품 개수 구하기
select substr(product_code ,1 ,2) category,
count(1) product #group by를 기준으로 count
from product
group by category
order by category
'WHAT I LEARN > TIL' 카테고리의 다른 글
[TIL] AI 웹 개발 7기 사전 캠프 4-5 (1) | 2024.06.14 |
---|---|
[TIL] AI 웹 개발 7기 사전 캠프 4-4 (1) | 2024.06.13 |
[TIL] AI 웹 개발 7기 사전 캠프 4-2 (1) | 2024.06.11 |
[TIL] AI 웹 개발 7기 사전 캠프 4-1 (1) | 2024.06.10 |
[TIL] AI 웹 개발 7기 사전 캠프 3-5 (0) | 2024.06.05 |