분류 전체보기 230

2024-03-29

오늘 진행한 일 1. SQL 코드카타 5문제 2. 알고리즘 코드카타 복습(1~20번) 기억할 내용 SQL datediff(o.datetime, i.datetime) DATEDIFF(날짜1,날짜2) >> 날짜1 - 날짜2 TIMESTAMPDIFF(단위, 날짜1, 날짜2) >> 날짜1 - 날짜2를 단위별로 SECOND: 초 MINUTE: 분 HOUR: 시 DAY: 일 WEEK: 주 MONTH: 월 QUARTER: 분기 YEAR: 연 파이썬 파이썬의 기본적인 나누기는 ' / ' 형태로 실수형(float) 로 리턴 divmod 함수 : 몫과 나머지를 한번에 연산 ex. a,b = divmod(20,7) >> a 2 >> b 6 * 몫과 나머지만 구해주기 때문에 나누기의 연산을 하려면 ' / ' 연산자를 사용해야..

TIL 2024.03.29

있었는데요 없었습니다

관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. # 내가 작성한 쿼리 SELECT i.animal_id, i.name FROM animal_ins i INNER JOIN animal_outs o ON i.animal_id = o.animal_id WHERE i.datetime > o.datetime ORDER BY i.datetime # 다른 쿼리 SELECT a.animal_id, a.name from animal_ins a, animal_outs b where a.animal_id = b.animal_id and a.datetime > b.dat..

SQL 코드카타 2024.03.29

정수 내림차순으로 배치하기 # sort, ''.join()

def solution(n): result = list(str(n)) result.sort(reverse = True) return int(''.join(result)) ① result = list(str(n)) # n을 문자열로 바꾸어 리스트를 만들어준다 >> ['1','1','8','3','7','2'] ② result.sort(reverse = True) # 리스트를 내림차순으로 정렬해준다 >> ['8','7','3','2','1','1'] ③ int(''.join(result)) # ''.join(리스트) 함수를 사용하여 문자열로 합쳐서 반환 >> 문자열 873211 # int 를 사용하여 정수로 리턴해준다 >> 숫자열 873211 * '구분자'.join(리스트) 함수 매개변수로 들어온 리스트를 ..

정수 제곱근 판별 # import math, n**(1/2), %1==0

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. def solution(n): x = n**(1/2) if x % 1 == 0: return (x+1) ** 2 else: return -1 ① n**(1/2) # n의 1/2 제곱은 n의 제곱근이다. ex. 121의 1/2 승 >> √121 = 11 ② x % 1 == 0 # x를 1로 나눈 나머지가 0이면 양의정수이다. # ex. x = 11 이었을 때 1로 나누면 몫이 11, 나머지가 0 # 다른 풀이 import math def solution(n): x = math.sqrt(..

자연수 뒤집어 배열로 만들기 # [::-1], reverse()

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. def solution(n): result = [] for i in str(n): result.append(int(i)) return result[::-1] # 다른 코드 def solution(n): result = [] for i in str(n): result.append(int(i)) result.reverse() return result # 다른 코드 def solution(n): result = [] for i in reversed(str(n)): result.append(int(i)) return result ① result = [] # 리스트 만들어주..

2024-03-28

SQL MySQL 날짜 함수 HOUR(date) : 시간에 해당하는 숫자를 반환(0~23) MOMTH(date) : 월에 해당 하는 숫자를 반환(0~12) DAY(date) : 일자에 해당하는 숫자를 반환(0~31) LAST_DAY(date) : 해당 월의 마지막 날짜 정보반환 NULL 관련 함수 NVL(A,B) : A 가 NULL 인 경우 B, 아니면 A 를 출력 # 오라클에서 사용가능 IFNULL(A,B) : A 가 NULL 인 경우 B, 아니면 A 를 출력 # MySQL 에서 사용 가능 COALESCE(A,B) : A와 B에서 NULL 이 아닌 최초의 값 : A에서 null 이 있고 B에는 null이 없다면 B를 출력 # 둘다 사용가능 REGEXP 정규식 패턴 기능 설명 | 또는(OR) shift ..

TIL 2024.03.28

x만큼 간격이 있는 n개의 숫자 # range()

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. def solution(x, n): answer = [] for i in range(1,n+1): answer.append(x*i) return answer answer = [] # 리스트 생성 for i in range(1,n+1) # 자연수이기 때문에 1부터 시작해서 n 까지 증가하는 수를 범위에 둔 매개변수 i를 반복실행 answer.append(x*i) # x 부터 시작해서 n 번, x씩 증가하는 숫자 ' x * i ' 를 리스트에 추가 * 자연수 : 1부터 시작하는 양의 정수 Q. x..

나머지가 1이 되는 수 찾기 # range()

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. def solution(n): for x in range(2,n+1): if n%x==1: return x # 나머지가 1이 되어야 하니까 답이 될 수 있는 가장 작은 수인 2부터 n 까지의 범위 나머지가 1이 나오는 x 값을 출력 Q. 다른 풀이를 보니 range(2, n) 으로 하는데 왜일까? A. x 가 n 을 나눴을 때 1이 나오는 값을 찾아야하는데, n % n = 0 이기 때문에 x 값의 범위를 n-1 까지의 범위를 주는 것 * if 문에서 나머지가 1인 경우에만 범위를 찾기 때문에 n 이어도 어차..

진료과별 총 예약 횟수 출력하기 # MONTH()

PPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요. https://school.programmers.co.kr/learn/courses/30/lessons/132202#qna # 내가 작성한 쿼리 SELECT mcdp_cd AS "진료과 코드" , COUNT(apnt_no) AS "5월예약건수" FROM appointment WHERE DATE_FORMAT(apnt_ymd, '%Y-%m') = '2022-05' GROUP BY 1 ORDER BY..

SQL 코드카타 2024.03.28

입양 시각 구하기(1) # HOUR()

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. # 내가 작성한 쿼리 SELECT DATE_FORMAT(datetime, '%H') "HOUR" , COUNT(*) COUNT FROM animal_outs WHERE DATE_FORMAT(datetime, '%H') BETWEEN 09 AND 19 GROUP BY 1 ORDER BY 1 # 다른 풀이 방식 SELECT HOUR(datetime) AS HOUR, COUNT(*) AS COUNT FROM animal_outs WHERE HOUR(datetime) BETWEEN 9 AND..

SQL 코드카타 2024.03.28