Lv1. 시저 암호 (Python)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/12926?language=python3
내가 작성한 코드
# 파이썬 내장함수
# 문자 -> 숫자: ord()
# 숫자 -> 문자: chr()
def solution(s, n):
answer = ''
for ch in s:
if ch == " ":
answer += " "
elif ch.islower():
answer += chr((ord(ch) - ord('a') + n) % 26 + ord('a'))
# ord(ch): 현재 문자를 숫자로 바꿈 (ex: 'a'-> 97, 'b'-> 98, .., 'z'-> 122)
# ord('a'): 소문자 알파벳의 시작 기준점 (숫자 97)
# ord(ch) - ord('a'): ch가 'a'에서부터 몇 번째 위치인지 계산
# + n: 알파벳을 n만큼 오른쪽으로 민다
# % 26: 알파벳의 개수는 총 26개로, z를 넘어가면 다시 a부터 세기 위해 나머지 연산 사용함
# + ord('a'): 0~25의 숫자 범위를 다시 문자 코드 영역으로 되돌림
# chr(..): 계산된 숫자를 다시 문자로 변환
elif ch.isupper():
answer += chr((ord(ch) - ord('A') + n) % 26 + ord('A'))
return answer
Lv2. 진료과별 총 예약 횟수 출력하기 (MySQL)
링크: https://school.programmers.co.kr/learn/courses/30/lessons/132202?language=oracle
내가 작성한 코드
-- MySQL
-- 풀이1: 날짜 범위 비교
SELECT MCDP_CD AS '진료과코드', COUNT(APNT_NO) AS '5월예약건수'
FROM APPOINTMENT
WHERE APNT_YMD >= '2022-05-01' AND APNT_YMD < '2022-06-01'
GROUP BY MCDP_CD
ORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC;
-- 풀이2: YEAR/MONTH 사용
SELECT MCDP_CD AS '진료과코드', COUNT(APNT_NO) AS '5월예약건수'
FROM APPOINTMENT
WHERE YEAR(APNT_YMD) = 2022 AND MONTH(APNT_YMD) = 5
GROUP BY MCDP_CD
ORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC;
-- 풀이3: DATE_FORMAT 사용
SELECT MCDP_CD AS '진료과코드', COUNT(APNT_NO) AS '5월예약건수'
FROM APPOINTMENT
WHERE DATE_FORMAT(APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY MCDP_CD
ORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC;
ORACLE
-- ORACLE
-- 풀이1: 날짜 범위 비교
SELECT MCDP_CD AS "진료과코드", COUNT(APNT_NO) AS "5월예약건수"
FROM APPOINTMENT
WHERE APNT_YMD >= DATE '2022-05-01' AND APNT_YMD < DATE '2022-06-01'
GROUP BY MCDP_CD
ORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC;
-- 풀이2: YYYY/MM 연/월 분리
SELECT MCDP_CD AS "진료과코드", COUNT(APNT_NO) AS "5월예약건수"
FROM APPOINTMENT
WHERE TO_CHAR(APNT_YMD, 'YYYY') = '2022' AND TO_CHAR(APNT_YMD, 'MM') = '05'
GROUP BY MCDP_CD
ORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC;
-- 풀이3: TO_CHAR 사용
SELECT MCDP_CD AS "진료과코드", COUNT(APNT_NO) AS "5월예약건수"
FROM APPOINTMENT
WHERE TO_CHAR(APNT_YMD, 'YYYY-MM') = '2022-05'
GROUP BY MCDP_CD
ORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC;
'코딩테스트' 카테고리의 다른 글
| [26.01.28 코테(Python/MySQL/Oracle)]-K번째 수&오랜 기간 보호한 동물(1) (0) | 2026.01.28 |
|---|---|
| [26.01.27 코테(Python/MySQL/Oracle)]-푸드 파이트 대회&카테고리 별 도서 판매량 집계하기 (0) | 2026.01.27 |
| [26.01.23 코테(Python/MySQL)]-최소직사각형&오랜 기간 보호한 동물(2) (0) | 2026.01.23 |
| [26.01.22 코테(Python/MySQL)]-크기가 작은 부분 문자열&취소되지 않은 진료 예약 조회하기 (0) | 2026.01.22 |
| [26.01.21 코테(Python/MySQL)]-이상한 문자 만들기&가격이 제일 비싼 식품의 정보 출력하기 (0) | 2026.01.21 |