전체 글

푼 날짜 : 2024.10.18푼 문제 : [13913] / 숨바꼭질 4사용한 언어 : python알고리즘 : BFS  접근 방식 :가장 빠른 시간을 출력하는 것은 사실 이전과 비슷한 문제이기 때문에 어렵지 않았다.중요한 것은 이동 방법이 여러개인데 이를 어떻게 출력할 것인가 였다! 내가 결정한 방법은1) 이동 방법과 이동했을 때 위치를 저장2) 도착지점에서 세 가지 이동 방식을 활용해서 출발지점으로 이동하는 방법을 찾기 -> stack에 추가3) 출력을 pop을 사용해서 해준다였다. 사실 여러가지 이동 방법 중 하나의 이동 방법만 출력하면 되기에 가능한 시도였던 것 같다.  코드 :from collections import dequeN, K = map(int, input().split())# 방문 처리..
푼 날짜 : 2024.10.18푼 문제 : [9461] / 파도반 수열사용한 언어 : python알고리즘 : DP  점화식 :dp[i] = dp[i-3]+dp[i-2] 생각보다 쉬웠던 점화식 찾기! P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9  라고 문제에 주어졌기 때문에 확인해보면 3번째 전 숫자와 2번째 전 숫자를 더하면 현재 숫자가 나온다.  1, 1, 1, 2, 2, 3, 4, 5, 7, 91, 1, 1, 2, 2, 3, 4, 5, 7, 91, 1, 1, 2, 2, 3, 4, 5, 7, 91, 1, 1, 2, 2, 3, 4, 5, 7, 9...1, 1, 1, 2, 2, 3, 4, 5, 7, 9  이렇게 !!!   코드 :T = int(input(..
·Programming/SQL
날짜 비교하는 방법을 정리해보려고 한다! 먼저 BETWEEN A AND B를 사용하는 방법WHERE 날짜 BETWEEN A AND BWHERE 날짜 BETWEEN '2023-01-01' AND '2024-12-31' 또는 부등호를 사용하는 방법WHERE 날짜 >= AWHERE 날짜 >= '2024-10-17 23:59:59' 이런식으로 사용할 수 있다!  적용하기 푼 날짜 : 2024.10.17푼 문제 : 진료과별 총 예약 횟수 출력하기사용한 언어 : MYSQL 코드 :BETWEEN A AND B SELECT MCDP_CD as 진료과코드, COUNT(APNT_YMD) as 오월예약건수FROM APPOINTMENTWHERE APNT_YMD between '2022-05-01 00:00:00' and '2..
·Programming/SQL
SQL 을 풀다보면 문자열을 잘라 사용해야 할 때가 있다.이때 필요한게 바로 SUBSTRING !! SUBSTRING('문자열', 시작위치)SUBSTRING('문자열', 시작위치, 몇 개나 가져올지)  예를 들어 문자열 : "HAPPY"SUBSTRING(HAPPY, 1, 2) 하고 한다면,결과는 HA 가 된다. 적용하기 푼 날짜 : 2024.10.17푼 문제 : 카테고리 별 상품 개수 구하기사용한 언어 : MYSQL 코드 :SELECT SUBSTRING(PRODUCT_CODE, 1, 2) as CATEGORY, COUNT(PRODUCT_CODE) as PRODUCTSFROM PRODUCTGROUP BY SUBSTRING(PRODUCT_CODE, 1, 2)
푼 날짜 : 2024.10.12푼 문제 : [2096] / 내려가기사용한 언어 : python알고리즘 : DP  접근 방식 :처음에 일반적인 DP로 풀다가 메모리 초과가 났다.생각해보면 DP는 현재값 계산을 위해 이전 값을 활용하기 때문에 다음 계산 전 현재 값을 이전 값으로 덮어씌웠다.# 덮어쓰기dp[0][0] = dp[1][0]dp[0][1] = dp[1][1]dp[0][2] = dp[1][2]dp2[0][0] = dp2[1][0]dp2[0][1] = dp2[1][1]dp2[0][2] = dp2[1][2] 이렇게 하면 모든 DP 배열을 채우지 않고 단순하게 계산할 수 있다.  코드 :import sysN = int(sys.stdin.readline())dp = [[0, 0, 0], [0, 0, 0]]..
푼 날짜 : 2024.10.12푼 문제 : [7569] / 토마토사용한 언어 : python알고리즘 : BFS  접근 방식 :dx = [1, -1, 0, 0, 0, 0]dy = [0, 0, 1, -1, 0, 0]dz = [0, 0, 0, 0, 1, -1] 위 아래 왼쪽 오른쪽 앞 뒤 이렇게 6방향을 처리해줘야 했으므로 위와 같이 구성했다.사실 그렇게 어렵지는 않은 문제라 나머지는 코드의 주석으로 확인하면 좋을 것 같다 !   코드 :import sysfrom collections import dequeM, N, H = map(int, sys.stdin.readline().split())graph_ = [[] for _ in range(H)]for i in range(H): for _ in range..
푼 날짜 : 2024.10.11푼 문제 : [12851] / 숨바꼭질 2사용한 언어 : python알고리즘 : BFS  접근 방식 : 사실 저번에 풀다가 "가장 빠른 시간으로 찾는 방법이 몇 가지 인지 구하는 프로그램을 작성" 에서 막혔었다.1 21 + 1 => 21 * 2 => 2 요런 테케의 경우 방법이 2가지인데 방문 처리를 해버리는 순간 조건문 안에 안들어가서 고민을 좀 했다. visited[i] == -1 or visited[i] == visited[now] + 1 디버깅 하다가 요렇게 수정하고 바로 통과 !역시 오늘도 하나 배워갑니다..   코드 :import sysfrom collections import dequeN, K = map(int, sys.stdin.readline().split(..
푼 날짜 : 2024.10.08푼 문제 : [14501] / 퇴사사용한 언어 : python알고리즘 : DP  접근 방법 : 1) 상담횟수와 금액 배열을 따로 만들자! 금액이 높다고 출력 X상담을 제일 많이 한 날의 금액을 출력 O 따라서 두 값을 적절히 저장할 배열이 필요하다. 2) 계산이 불가능 한 경우를 먼저 지우자! 오늘부터 상담을 시작했을 때 퇴사 전 끝내지 못할 경우 (i + lst[i][0] > N)예를 들어 8일에 상담이 끝나는데 7일에 2일이 걸리는 상담은 불가능하다. 오늘 기준으로 이전 상담을 완료하지 못한 경우 (j + lst[j][0] > i)예를 들어 오늘이 5일인데 2일에 4일짜리 상담을 했다면 오늘 기준으로 상담이 완료되지 않았으므로 상담 불가.3) 계산 시에는 오늘 날짜를 기..
__narrrrrmm