Lv1. 크기가 작은 부분 문자열 (Python)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/147355
내가 작성한 코드
def solution(t, p):
answer = 0
for i in range(len(t) - len(p) + 1): # p길이만큼 자를 수 있는 시작 위치에서 부분 문자열을 하나씩 오른쪽으로 이동시키며 확인
sub = t[i : i + len(p)] # i위치에서 시작해 p와 같은 길이의 부분 문자열을 생성
if int(sub) <= int(p): # 부분 문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같다면
answer += 1 # 조건 만족하는 부분 문자열의 개수 증가
return answer
Lv4. 취소되지 않은 진료 예약 조회하기 (MySQL)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/132204
내가 작성한 코드
SELECT A.APNT_NO, P.PT_NAME, A.PT_NO, A.MCDP_CD, D.DR_NAME, A.APNT_YMD
FROM PATIENT P
JOIN APPOINTMENT A
ON P.PT_NO = A.PT_NO
JOIN DOCTOR D
ON D.DR_ID = A.MDDR_ID
WHERE A.MCDP_CD = 'CS' AND A.APNT_CNCL_YN = 'N'
AND A.APNT_YMD >= '2022-04-13 00:00:00' AND A.APNT_YMD < '2022-04-14 00:00:00'
ORDER BY A.APNT_YMD
BETWEEN을 사용하지 않은 이유
- APNT_YMD는 TIMESTAMP 타입으로 초 단위뿐 아니라 마이크로초까지 저장될 수 있음
- BETWEEN은 양 끝 값을 모두 포함하므로
- BETWEEN '2022-04-13 00:00:00' AND '2022-04-13 23:59:59' 를 사용하면 23:59:59 이후의 마이크로초 값이 존재할 경우 해당 데이터가 누락될 수 있음
- 따라서 하루 전체 데이터를 안전하게 조회하기 위해 시작 지점은 포함(>=), 다음 날 0시는 제외(<)하는 구간 방식 사용
- 마이크로초 유무와 관계 없이 정확히 하루 범위 조회 가능
'코딩테스트' 카테고리의 다른 글
| [26.01.26 코테(Python/MySQL/Oracle)]-시저 암호&진료과별 총 예약 횟수 출력하기 (0) | 2026.01.26 |
|---|---|
| [26.01.23 코테(Python/MySQL)]-최소직사각형&오랜 기간 보호한 동물(2) (0) | 2026.01.23 |
| [26.01.21 코테(Python/MySQL)]-이상한 문자 만들기&가격이 제일 비싼 식품의 정보 출력하기 (0) | 2026.01.21 |
| [26.01.20 코테(Python/MySQL)]-3진법 뒤집기&조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2026.01.20 |
| [26.01.19 코테(Python/MySQL)]-최대공약수와 최소공배수&중성화 여부 파악하기 (0) | 2026.01.19 |