- 오늘 진행한 일
1. SQL 코드카타 (46~50번)
2. 알고리즘 코드카타 복습 풀이
- 기억할 내용
SQL
select food_type, rest_id,rest_name, max(favorites)
from rest_info
group by food_type
이렇게 쿼리를 작성했더니
rest_id 와 rest_name 에는
GROUP BY 조건이 없어 첫번째 행의 값이 입력되었다.
select food_type, rest_id,rest_name, favorites
from rest_info
where (food_type,favorites) IN (select food_type,max(favorites) from rest_info group by food_type)
order by food_type desc
rest_id 와 rest_name 에도 MAX(favorites) 값과 일치하는 데이터들이 들어가게 하기 위해
where 절에 서브쿼리를 사용해서 IN 조건을 주고 일치하는 값들을 찾아주었다!
서브쿼리를 어디에 사용할 수 있는지는 알고있었지만 사용하는 방법을 몰랐는데
where 절에 넣어 조회할 수 있다니 너무 좋았다!
파이썬
두 정수 사이의 합
def solution(a,b):
if a<=b:
return sum(range(a,b+1))
if a>b:
return sum(range(b,a+1))
지난주에는 if 조건을 여러개 쓸 생각조차 못했었는데
이번에는 두개의 조건을 주면서 풀어볼 수 있었다
return sum(range(min(a,b),max(a,b)))
이렇게 코드를 짜면 훨씬 간결하고 깔끔해보이니
이정도 수준으로 올라갈 수 있을 만큼 발전해보자
하지만 자꾸 반복하다보니 두번째 코드를 외워서 쓰게 되더라..
하샤드 수
양의 정수 18을 각각 리스트로 나누어 주고 싶을 때
list(map(int,str(18)))
리스트로 쪼개어주기 위해 18을 문자열로 나누고
그 이후 연산작업을 하기 위해 숫자형으로 변경하기 위해 map 함수를 사용하였다.
애초에 숫자형 1과 8로는 나눌 수 없는지 의문이다.
정수 내림차순으로 배치하기
def solution(n):
answer = list(str(n))
answer.sort(reverse=True)
return int("".join(answer))
문자열로 만들어진 n 리스트를 다시 숫자형으로 바꿔 return 해주었다.
return 쪽을 깔끔하게 적어주고 싶어서 하샤드 수에서처럼 map 함수를 사용하여 int 형으로 바꿀 수 없을까했는데
sort() 는 문자열을 기준으로 정렬하기 때문에 불가능했다.
- 내일 진행 예정
1. SQL 코드카타
2. 알고리즘 코드카타 복습
3. 알고리즘 코드카타 새로운 문제 풀이
'TIL' 카테고리의 다른 글
2024-04-03 (0) | 2024.04.03 |
---|---|
2024-04-02 (0) | 2024.04.02 |
2024-03-31 (0) | 2024.03.31 |
2024-03-30 (1) | 2024.03.30 |
2024-03-29 (1) | 2024.03.29 |