본문 바로가기

개발자 강화/코딩 테스트

(58)
[백준] 14888 연산자 끼워넣기 Python3 DFS 이거 보자마자 생각난 문제https://school.programmers.co.kr/learn/courses/30/lessons/43165 n = int(input())arr = list(map(int,input().split()))plus, minus, cross, div = list(map(int,input().split()))max_ = - int(1e9)min_ = int(1e9)def dfs(plus, minus, cross, div, sum, idx): global max_, min_ if idx == n: max_ = max(max_, sum) min_ = min(min_, sum) return if plus: dfs(plus..
[백준] 2583 영역구하기 bfs 실1 이제 bfs 문제 보면 대충 그림+빙산 조합으로 풀면 되겠네...이런 생각 함 from collections import dequem, n, k = map(int, input().split())arr = [[0 for _ in range(n)] for _ in range(m)]for _ in range(k): x1, y1, x2, y2 = map(int, input().split()) for y in range(y1, y2): for x in range(x1, x2): arr[m - y - 1][x] = 1 dx = [0, 0, 1, -1]dy = [1, -1, 0, 0]def bfs(y, x, visited): q = deque() q.append..
[백준] 19941 햄버거 https://www.acmicpc.net/problem/19941n, k = map(int, input().split())s = list(input()) # 문자열을 리스트로 변환ans = 0# 모든 사람의 위치에서 가장 가까운 햄버거를 탐색for i in range(n): if s[i] == 'P': # 현재 위치에 사람이 있는 경우 # i-K부터 i+K까지의 범위에서 햄버거를 탐색 for j in range(max(0, i - k), min(n, i + k + 1)): if s[j] == 'H': # 햄버거가 있다면 먹음 s[j] = '0' # 해당 햄버거를 '먹음' 상태로 변경 ans +..
[백준] 2468 안전영역 BFS from collections import dequen = int(input())arr = [list(map(int, input().split())) for _ in range(n)]def bfs(i,j,k,visited):    q=deque()    q.append([i,j])    dx=[0,0,1,-1]    dy=[1,-1,0,0]    while q:        y,x = q.popleft()        visited[y][x] = True        for i in range(4):            y_=y+dy[i]            x_=x+dx[i]            if 0y_n and 0x_n and not visited[y_][x_] and arr[y_][x_]>k: ..
[백준] 2573 - 빙산 BFS (Python3) https://www.acmicpc.net/problem/2573 바다 0과 각 빙산의 높이(1 이상의 정수)가 담긴 이차원 배열이 있다.매년 각 빙산은 주변에 둘러쌓인 바다의 면 수 만큼 높이가 줄어든다.빙산이 2개 이상의 조각으로 분리될 때까지 걸리는 년수? 비슷한 문제는 백준에 '그림' 문제가 있다연결된 1의 개수를 세어서 그림 위에 색칠된 영역 덩어리가 몇 개인지 세는 것거기에서 매년 높이가 줄어드는 로직만 추가됨https://www.acmicpc.net/problem/1926그림 문제와 같이 우선 각 덩어리를 세는 함수를 추가한다 1. 각 빙산의 덩어리 수를 구하는 함수이중 for문으로 입력 배열을 탐새하면서, 방문한 적이 없고, 빙산인 경우(바다가 아닌 경우)해당 점을 시작으로 빙산을 탐색한다..
[SQL] 없어진 기록 찾기 - JOIN OUTS 테이블에 있지만 INS 테이블에 없는 경우를 찾아야 하니까오른쪽 테이블에만 값이 있어도 JOIN 하고 왼쪽 테이블 값을 NULL로 처리하는RIGHT OUTER JOIN을 써야함!! 헷갈렸던게 SELECT문을 INS 테이블 요소를 고르든 OUTS 테이블 요소를 고르든 상관없을 것이라고 생각했는데,INS 테이블에는 없는 경우를 고르는거라, OUTS 테이블에 있는 ID랑 NAME을 골라야 제대로 출력이 되더라 SELECT O.ANIMAL_ID, O.NAMEFROM ANIMAL_INS AS IRIGHT OUTER JOIN ANIMAL_OUTS AS OON I.ANIMAL_ID=O.ANIMAL_IDWHERE I.DATETIME IS NULL
[SQL] 있었는데요 없었습니다 - MySQL 프로그래머스 lv3 동물 보호 시작일이 담긴 테이블과 동물 입양 시작일이 담긴 테이블이 있음근데 보호 시작일보다 입양 시작일이 빠른 경우가 있음 이런 케이스를 조회해야 하며보호 시작일이 빠른 순으로 조회해야 함 SELECT I.ANIMAL_ID, I.NAMEFROM ANIMAL_INS AS IJOIN ANIMAL_OUTS AS OON I.ANIMAL_ID=O.ANIMAL_IDWHERE I.DATETIME>O.DATETIMEORDER BY I.DATETIME두 테이블의 id값을 기준으로 join 한 후where문으로 보호시작일 값이 더 큰 경우만 추출했다
[SQL] 상품 별 오프라인 매출 구하기 - MySQL PRODUCT 테이블과 OFFLINE_SALE 테이블에서PRODUCT_ID를 기준으로 JOIN 그리고, PRODUCT PRICE값과 OFFLINE_SALE의 SUM(SALES_AMOUNT)값을 곱한 값을 SALES로 명명하기 ORDER BY 조건을 2개 설정할 수 있는게 신기했음문제에 제시된 우선순위를 따라 매출액 내림차순, 상품코드 오름차순 순으로 정렬했음 -- 코드를 입력하세요SELECT P.PRODUCT_CODE, P.PRICE*SUM(O.SALES_AMOUNT) AS SALESFROM PRODUCT AS PJOIN OFFLINE_SALE AS O ON P.PRODUCT_ID=O.PRODUCT_IDGROUP BY P.PRODUCT_CODEORDER BY SALES DESC, PRODUCT_CODE ..
[백준] 5014_스타트링크_BFS (c++) 실1 이전에 푼 촌수세기랑 비슷하게 풀었어요 https://www.acmicpc.net/problem/5014 이 건물은 총 F층이고나는 지금 S층에 있고, G층으로 가고 싶습니다버튼이 좀 이상해서 위 버튼을 누르면 +U층으로, 아래 버튼을 누르면 -D층으로 이동합니다만약 위 아래 버튼을 눌러서 나오는 층이 최저층이나 최고층을 초과하면 이동하지 않습니다 최소 버튼 횟수로 원하는 층에 도달하고자 합니다. 현재 층을 queue에 넣습니다. n+1 길이의 visited 배열은 -1로 초기화합니다(미방문 의미) S층부터 시작하니까, visited[s]는 0으로 만듭니다. while q가 빌 때까지 돌리면서만약 현재 원소가 g랑 같으면 멈추고그 외에는 위로 가는 경우, 아래로 가는 경우를 탐색합니다해당 층이 미방문인지..
[백준] 2644 - 촌수계산 (C++) lv.2 c++ 개발 환경 세팅 떔에 더 오래걸림 - python에서는 bfs의 queue를 deque함수로 사용해서, 습관적으로 deque로 함수를 짰다 촌수 관계를 입력받으면, 각 node에 어떤 사람과 가족인지 집어넣어주는데,단방향이 그래프가 아니라 양방향 그래프기 때문에(서로 가족) edge를 c->d d->c 양쪽 다 넣어줘야 한다 그리고, q를 만들어서 전형적인 bfs 탐색을 시작하는데,이때 visited 함수가 단순히 bool 함수로 방문 T/F를 처리하는게 아니라현재 가족이 시작점(사람 a)으로부터 몇 번째 촌수인지 저장하기 위해다음노드 = 현재노드+1 로 촌수를 누적 기록해준다 그리고 종료점(사람 b)가 되면 탐색을 멈추고결과적으로 visited[b]를 출력하면 a->b 사이 촌수가 된다. #in..