본문 바로가기

전체 글

(107)
[백준] 14719 빗물 / 구현 / Python 골5 https://www.acmicpc.net/problem/14719 SWEA에서 풀었던 VIEW 문제와 비슷하다고 생각햇음접근법은 좀 다르지만.. 결국 아이디어는 다른 블로그를 통해 얻긴 했는데 빗물이 고일 수 있는 위치는 1에서 n-2번째 블록이고, for문 범위를 잡는다현재 i번째 블록에서 좌, 우를 탐색한다 좌에서 max인 값과 우 에서 max값을 찾으면내 블록 위로 고일 수 있는 좌,우 기둥의 max값을 알 수 있음어차피 빗물은 벽이 아무리 멀리 떨어져있어도, 나보다 높은 좌우 기둥이 있으면 무조건 고임 좌,우 기둥 중 min값에 맞춰 빗물이 최대로 고일 수 있음 그리고, 그 좌,우 min 값 중 나 자신의 높이를 빼면 내 위치에서 고이는 빗물의 높이를 알 수 있음 그러나 좌,우min-나자신 값이..
[백준] 회전초밥 / Python 실1 https://www.acmicpc.net/problem/2531처음에 했던 생각 for문으로 n개의 초밥을 탐색하면서i번째 초밥부터 k개의 초밥을 set으로 묶어서 종류를 헤아린 후종류 안에 c 쿠폰 초밥이 포함되지 않으면 1을 더해준 후이전 i-1번째 초밥까지 헤아린 종류 수 중 최댓값을 변수에 저장해놓고현재 상태에서 max로 비교해서 업데이트하면 어떨까 = 시간초과 엔딩 #접시, 초밥가짓수, 연속, 쿠폰번호n,d,k,c = map(int,input().split())a = [int(input()) for _ in range(n)]#쿠폰번호가 포함되지 않은 k개를 먹으면 최대가짓수?dp = [0]*n#i번째 위치에서 k개를 먹을 때 가짓수?s=0for i in range(n): temp=[] ..
[이취코] 음료수 얼려먹기 / BFS / Python 2차원 배열에서 0은 빈공간, 1은 벽얼음 개수를 구하는거라 0으로 구성된 묶음이 총 몇 개인지 구하면 됨 BFS의 전통적인 문제로... 전설의 문제 '그림'과 같은 형태 from collections import dequen,m = map(int,input().split())a = [list(map(int,input().strip())) for _ in range(n)]visited = [[False for _ in range(m)] for _ in range(n)]dx=[0,0,1,-1]dy=[1,-1,0,0]def bfs(i,j): q = deque() q.append([i,j]) visited[i][j]=True while q: cur = q.popleft() ..