오늘의 문제 : 기능 개발
걸린시간 : 53분
권장시간 : 1시간
오늘의 회고
일전에 풀어본적 있던 문제였던 것 같은데, 기억이 나지 않았다. 하지만 탐색 범위가 크지 않고 요소를 순회하면서 비교하면 되는 문제라고 생각할 수 있었다. 우선 나의 풀이 순서는 아래와 같다.
1. 작업의 작업 시간을 구한다.
2. 첫번째 요소를 stack에 넣는다.
3. stack의 top과 비교하여 작업 시간이 적으면 cnt +1한다.
4. stack의 top과 비교하여 작업 시간이 크면 stack을 pop하고 현재 작업시간을 append한다.
✋ 내가 여기서 간과한 부분, 내가 문제를 처음에 틀렸던 이유는 작업 시간을 구했을 때, 반올림이 아닌 올림을 해줘야한다는 것이다. 왜냐면 기준일이기 때문이다. python의 math.ceil 메서드를 이용했다.
문제 풀이
1. python
import math
def solution(progresses, speeds):
answer = []
# 우선 작업을 돌면서 작업 기간을 구한다.
# 다음 작업의 작업 기간이 이전 작업의 기간보다 작다면 함꼐 배포하기 때문에 카운트를 더한다.
cnt = 1
stack = []
for i in range(len(progresses)) :
work = math.ceil((100 - progresses[i]) / speeds[i])
if i == 0 :
stack.append(work)
else :
if stack :
if stack[0] >= work :
cnt+=1
else :
stack.pop()
stack.append(work)
answer.append(cnt)
cnt = 1
answer.append(cnt)
return answer
SQL 문제
문제 : 평균 일일 대여 요금 구하기
mysql 소수점 반올림 함수 사용하기
CEIL(값) : 소수를 모두 올림
ROUND(값, 자릿수) : 자릿수 위치까지 반올림, 자릿수를 넣지 않은 경우 소수를 모두 반올림
FLOOR(값) : 소수를 모두 버림
1. python
SELECT
ROUND(SUM(DAILY_FEE) / COUNT(*)) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = "SUV"
문제 : 흉부외과 또는 일반외과 의사 목록 출력하기
Date 문자열 포맷팅할 때, DATE_FORMAT(값, 포맷형식) 사용가능
%Y : 4자리 년도, 2024
%y : 2자리 년도, 24
%m : 월, 01 ~ 12
%d : 일, 01 ~ 31
SELECT
DR_NAME,
DR_ID,
MCDP_CD,
DATE_FORMAT(HIRE_YMD, "%Y-%m-%d")
FROM DOCTOR
WHERE MCDP_CD IN ("CS", "GS")
ORDER BY HIRE_YMD DESC, DR_NAME ASC
'TIL' 카테고리의 다른 글
99클럽 10일차 TIL (240731) (0) | 2024.07.31 |
---|---|
99클럽 9일차 TIL (240730) (0) | 2024.07.30 |
99클럽 7일차 TIL (240728) (0) | 2024.07.28 |
99클럽 6일차 TIL (240727) (0) | 2024.07.27 |
99클럽 5일차 TIL (240726) (0) | 2024.07.26 |