[SQL]
https://school.programmers.co.kr/learn/courses/30/lessons/59042
51. 없어진 기록 찾기
-- 코드를 입력하세요
SELECT o.animal_id, o.name
from animal_ins i right join animal_outs o on i.animal_id=o.animal_id
where i.animal_id is null
order by o.animal_id
https://school.programmers.co.kr/learn/courses/30/lessons/133025
52. 과일로 만든 아이스크림 구하기
-- 코드를 입력하세요
SELECT f.flavor as FLAVOR
FROM first_half f join icecream_info i on f.flavor = i.flavor
WHERE i.ingredient_type = 'fruit_based' and f.total_order >=3000
ORDER BY f.total_order desc
*각 컬럼이 뭘 뜻하는지 충분히 숙지후에 코드 작성
https://school.programmers.co.kr/learn/courses/30/lessons/131536
53. 재구매가 일어난 상품과 회원 리스트 구하기
-- 코드를 입력하세요
SELECT user_id, product_id
FROM online_sale
group by user_id, product_id
having count(user_id)>=2
order by user_id, product_id desc
https://school.programmers.co.kr/learn/courses/30/lessons/59415
54. 최댓값 구하기
-- 코드를 입력하세요
SELECT max(datetime)
FROM animal_ins
https://school.programmers.co.kr/learn/courses/30/lessons/164670
55. 조건에 맞는 사용자 정보 조회하기
-- 코드를 입력하세요
SELECT u.user_id, u.nickname, concat(u.city, u.street_address1, u.street_address2), concat(substr(str(TLNO), 1, 3),'-', substr(str(TLNO), 4, 7), '-', substr(str(TLNO), 8, 11))
FROM used_goods_board b inner join used_goods_user u on b.writer_id = u.user_id
GROUP BY u.user_id
HAVING count(u.user_id)>=3
ORDER BY u.user_id desc
*CONCAT(u.city, ' ', u.street_address1, ' ', u.street_address2) -> 공백 추가
*sql에서는 str() 지원하지 않음. 그냥 쓰면 된다.
*CONCAT(SUBSTRING(u.TLNO, 1, 3), '-', SUBSTRING(u.TLNO, 4, 4), '-', SUBSTRING(u.TLNO, 8, 4)) AS phone
-> substr(컬럼, 자리, 가져올 개수)
*GROUP BY를 쓸 거면 SELECT절의 모든 비집계 컬럼을 포함해야 함.
GROUP BY u.user_id, u.nickname, u.city, u.street_address1, u.street_address2, u.TLNO
*좀 더 효율적으로 생각하기. 3개이상 쓴 아이디만 가져옴-> 고객정보 테이블이랑 조인 시킴 -> 필요한거 출력함
--답
SELECT U.USER_ID,
U.NICKNAME,
CONCAT(U.CITY, ' ', U.STREET_ADDRESS1, ' ', U.STREET_ADDRESS2) 전체주소,
CONCAT(SUBSTR(U.TLNO,1,3),'-', SUBSTR(U.TLNO,4,4), '-', SUBSTR(U.TLNO,8,4)) 전화번호
FROM USED_GOODS_USER U JOIN
(SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*)>=3
)B ON U.USER_ID = B.WRITER_ID
ORDER BY U.USER_ID DESC
[파이썬]
https://school.programmers.co.kr/learn/courses/30/lessons/12910
25. 나누어 떨어지는 숫자
--코드
def solution(arr, divisor):
my_arr=[]
for i in arr:
if i % divisor == 0:
my_arr.append(i)
if len(my_arr)==0:
my_arr.append(-1)
my_arr.sort()
return my_arr
--다른 답
1)
def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]
2)
def solution(arr, divisor):
arr = [x for x in arr if x % divisor == 0];
arr.sort();
return arr if len(arr) != 0 else [-1];
https://school.programmers.co.kr/learn/courses/30/lessons/76501
26. 음양 더하기
--코드
def solution(a, s):
answer = []
num=0
for i in range(0, len(a)):
if s[i] == True:
num = a[i]
answer.append(num)
elif s[i] ==False:
num = a[i]*(-1)
answer.append(num)
return sum(answer)
*if 절에 불리언 쓸거면 굳이 ==True이렇게 안써줘도 됨
--다른 답
1)
def solution(absolutes, signs):
answer = 0
for i in range(len(absolutes)):
if signs[i]:
answer += absolutes[i]
else:
answer -= absolutes[i]
return answer
2) zip 함수
def solution(absolutes, signs):
answer=0
for absolute,sign in zip(absolutes,signs):
if sign:
answer+=absolute
else:
answer-=absolute
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/12948
27. 핸드폰 번호 가리기
--코드
def solution(phone_number):
ph=[]
ph_real = phone_number[-4:]
for i in range(0, len(phone_number)-4):
ph.append('*')
return(''.join(ph) + ph_real)
--다른 답
1)
return "*"*(len(s)-4)+s[-4:]
*이렇게 간단하게 풀 수 있다니.. 문자열은 곱셈 가능함을 잊지 말기!
'DA > 코드카타' 카테고리의 다른 글
9주차 코드카타 - SQL(61~66), 파이썬(31~36) (0) | 2025.07.01 |
---|---|
0626 코드카타 - SQL(56~60), 파이썬(28~30) (0) | 2025.06.26 |
0624 코드카타 - SQL(46~50), 파이썬(22~24) (1) | 2025.06.13 |
0610 코드카타 - SQL(36~45), 파이썬(16~21) (2) | 2025.06.10 |
0605 코드카타 - SQL(31~35), 파이썬(13~15) (4) | 2025.06.05 |