Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Nonamed Develog

[TIL] AI 웹 개발 7기 사전 캠프 4-3 본문

WHAT I LEARN/TIL

[TIL] AI 웹 개발 7기 사전 캠프 4-3

노네임드개발자 2024. 6. 12. 18:38

일일 알고리즘/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