전체 글 407

[프로그래머스] 안전지대

def solution(board): # 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류 # 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재 answer = 0 def return_boom_set(x,y): temp_set = set() for i in range(x-1,x+2): for j in range(y-1,y+2): if 0  본 문제는 지뢰가 설치된 영역이 주어지고, 지뢰가 설치된 자리와 지뢰를 둘러싼 자리들이 위험지대라고 가정할 때 안..

[백준 2636번] 치즈

https://www.acmicpc.net/problem/2636 # 판의 가장자리에는 치즈가 놓여 있지 않다.# 치즈에는 하나 이상의 구멍이 있을 수 있다.# 공기와 접촉된 칸은 한 시간이 지나면 녹아 없어진다.# 치즈의 구멍 속에는 공기가 없지만 구멍을 둘러싼 치즈가 녹아서 구멍이 열리면 구멍 속으로 공기가 들어가게 된다.# 공기 중에서 치즈가 모두 녹아 없어지는 데 걸리는 시간과 모두 녹기 한 시간 전에 남아있는 치즈조각이 놓여 있는 칸의 개수를 구하는 프로그램from collections import dequedx = [-1,1,0,0]dy = [0,0,-1,1]r, c = map(int,input().split())area = [list(map(int,input().split())) for _ ..

Algorithm/BFS 2024.06.04

[백준 4485번] 녹색 옷 입은 애가 젤다지?

# 젤다의 전설 게임에서 화폐의 단위는 루피(rupee) # '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다 # 링크는 지금 도둑루피만 가득한 N x N 크기의 동굴의 제일 왼쪽 위에 있다 # 링크는 이 동굴의 반대편 출구, 제일 오른쪽 아래 칸인 [N-1][N-1]까지 이동해야 한다 # 동굴의 각 칸마다 도둑루피가 있는데, 이 칸을 지나면 해당 도둑루피의 크기만큼 소지금을 잃게 된다 # 링크가 잃을 수밖에 없는 최소 금액은 얼마일까? import sys from collections import deque input = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,-1,1] INF = float("inf") index..

Algorithm/BFS 2024.04.22

[SWEA 1949번] 등산로 조성

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com t = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] for index in range(t): n, k = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(n)] visited = [[False]*n for _ in range(n)] maximum_value = max(map(max,area)) maximum_set = set() answer = -1 for i, row in enumerate(area): for j, value in en..

카테고리 없음 2024.04.13

[백준 23289번] 온풍기 안녕!

23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net import sys from collections import deque input = sys.stdin.readline # 가장 처음에 모든 칸의 온도는 0 # 1. 집에 있는 모든 온풍기에서 바람이 한 번 나옴 # 2. 온도가 조절됨 # 3. 온도가 1 이상인 가장 바깥쪽 칸의 온도가 1씩 감소 # 4. 초콜릿을 하나 먹는다. # 5. 조사하는 모든 칸의 온도가 K 이상이 되었는지 검사. # 모든 칸의 온도가 K이상이면 테스트를 중단하고, 아니면 1부터 다시 ..

[백준 17471번] 게리맨더링

17471번: 게리맨더링선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다.www.acmicpc.netimport sys from itertools import combinations from collections import deque # 구역을 두 개의 선거구로 나눠야 하고, 각 구역은 두 선거구 중 하나에 포함되어야 한다. # 선거구는 구역을 적어도 하나 포함해야 하고, 한 선거구에 포함되어 있는 구역은 모두 연결되어 있어야 한다. input = sys.stdin.readline n = int(input()) peoples = [0] + list(map(int,input().split..

[백준 20058번] 마법사 상어와 파이어스톰

20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net import copy from collections import deque n, q = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(2**n)] visited = [[False]*len(area) for _ in range(len(area))] l_list = list(map(int,input().split())) dx = [0,0,-1,1] dy ..

[백준 1388번] 바닥 장식

1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net n, m = map(int,input().split()) area = [list(input()) for _ in range(n)] # 바닥 visited = [[False]*m for _ in range(n)] # 방문(카운팅)여부 answer = 0 for i in range(n): for j in range(m): # 모든 나무의 영역을 방문 if visited[i][j]: # 이미 방문(카운팅)한 나무라면 Pass continue visited[i][j] = Tr..

[DB] 프로시저(Procedure)란 ?

1. 저장 프로시저(Stored Procedure)란 ? DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 즉, DB에 대한 작업을 정리한 절차를 RDBMS(관계형 데이터 베이스 관리 시스템)에 저장한 쿼리의 집합이다. 영구저장모듈이라고도 불린다. SQL Server에서 제공되는 프로그래밍 기능. 쿼리문의 집합 어떠한 동작을 일괄 처리하기 위한 용도로 사용 자주 사용되는 일반적인 쿼리를 모듈화시켜서 필요할 때마다 호출 테이블처럼 각 데이터베이스 내부에 저장 여러 개의 칼럼을 조회하고, 여러 개의 테이블을 조인하고, 조건문까지 넣어주면 하나의 쿼리를 만드는데 엄청나게 긴 쿼리문이 생기게 되는데 이러한 여러 개의 쿼리를 사용할 때마다 긴 쿼리문을 작성한다면 매우 불편할 ..

[백준 14719번] 빗물

14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net from collections import deque h, w = map(int,input().split()) dx = [1,0,0] dy = [0,1,-1] area = [[0]*w for _ in range(h)] visited = [[False]*w for _ in range(h)] answer = 0 heights = list(map(int,input().split())) def check_available(x,y): # 빗물이 고일 수 ..