본문 바로가기

개발자 강화

(63)
[백준] 1026 보물 Greedy python lv4 배열 a,b가 존재하고b의 순서는 바꾸지 않으면서, a의 순서만 바꿔서i번째 a,b 원소의 곱의 총 합이 최소가 되도록 만드는 것https://www.acmicpc.net/problem/1026 혹시 a와 b에 sort를 써도 정답 처리가 되나 궁금했는데그냥a.sort(reverse=Ture) b.sort()를 한 후 곱을 구해도 정답처리가 되긴 하더라 n = int(input())a = list(map(int,input().split()))b = list(map(int,input().split()))a.sort(reverse=True)b.sort()s=0for i in range(n): s+=a[i]*b[i]print(s)  근데 다른 사람들도 sort 써도 되는지 다 한번씩 해본게 좀 웃겼음 그..
[백준] 2217 로프 Greedy python 실4 로프가 k개면 각 로프에 w/k만큼 중량이 걸림 결국 물건 드는 데 쓰는 로프 중 가장 힘이 약한 로프*k개 만큼만 들 수 있음 그래서 로프를 힘 크기 오름차순으로 sort한 후에 첫번째 로프(가장 힘이 약한 로프)부터 보면첫번째 로프*n이 들 수 있는 최대무게 두 번째 로프*(n-1)이 최대 무게세 번째 로프*(n-2)가 최대 무게 따라서 i번째에는(i는 0부터 n-1까지)i번째 힘을 가진 로프*(n-i개)의 값을 구하면 n-i개의 로프를 사용했을 때 들 수 있는 최대 무게를 구할 수 있음 결국 이 값들을 다 dp에 저장한 후에max값을 구하면 됨 n = int(input())arr = [int(input()) for _ in range(n)]# 로프 k개이면, 각 로프에는 w/k 만큼 중량이 걸림ar..
[백준] 최대 공통 증가 수열(실패...) 7476 골1 오블챌을 위해 일단 풀 문제 선언만 하고 글 쓸게요...다시 돌아와서 풀고 수정하겠습니다 요즘 본인의 부분수열 실력 부족에 심각성을 느끼고... 부분 수열 좀 백준에서 찾아 풀겠습니다 https://www.acmicpc.net/problem/7476 풀이로 곧 돌아오겠습니다 커밍쑨 ---- 일단 풀면서 LCS LIS 관련 문제임을 알게 되었고 https://velog.io/@emplam27/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-LCS-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Longest-Common-Substring%E..
[백준] 11727 2*n 타일링2 / 실3 / DP 이거 문제가 왜 익숙한가 했는데이.취.코 파이썬 책 DP 챕터- 바닥공사랑 똑같은 문제였음 n = int(input())dp=[0]*(n+1)dp[0]=1dp[1]=1for i in range(2, n+1): dp[i] = (dp[i-1]+dp[i-2]*2)%10007print(dp[n]) dp의 각 칸이 타일의 가로 1칸이라고 생각한다 (세로는 어차피 2로 고정) 가로 길이가 1일때는이거 문제가 왜 익숙한가 했는데 이.취.코 파이썬 책 DP 챕터- 바닥공사랑 똑같은 문제였음  dp의 각 칸이 타일의 가로 1칸이라고 생각한다 (세로는 어차피 2로 고정) 가로 길이가 1일때는 1*2밖에 못넣으니까 1 가로 길이가 2일 때는 1*2 타일 2개 또는 2*2 타일 1개, 또는 2*1 타일 2개로 시작할 수..
[백준] 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