알고리즘 13

[백준]2468. 안전영역 - python

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 � www.acmicpc.net 문제풀이 BFS 탐색 문제 날짜에 따라서 잠긴부분과 아닌 부분을 0과 1로 나타냄 그 다음, 1 인 부분(잠기지 않은 부분) 을 bfs 탐색으로 찾아내어 카운팅함 각 날짜별로 계산해서 그 중 최대 영역 개수를 찾아냄 코드 (python) dir=[[-1,0],[0,1],[1,0],[0,-1]] def bfs(start): que = [] que.append(start) map_b[start[0]][s..

알고리즘/백준 2020.07.08

[SWEA] 1949. 등산로 조성 (python)

문제풀이 dfs를 이용하여 최적화를 하는 문제이다. 가장 높은 봉우리에서 부터 탐색을 시작함. 봉우리의 사방을 탐색 다음 길이 낮으면 그대로 탐색 진행(dfs호출) 다음 길의 높이가 같거나 높고 공사를 아직 안했으면 공사를 진행함 공사는 최대 깊이 K만큼 할 수 있음 (1~K) 모든 경우( 모든 공사깊이 ) 를 탐색 공사 후에 다음 길의 높이가 낮아졌다면 dfs를 호출해서 탐색 계속 (dfs호출) 등산로길이의 최대값을 계속 업데이트해서 최대값을 결과로 얻음 소스코드(python) dr = [-1,0,1,0] dc = [0,1,0,-1] def dfs(r,c,path,isConst): global ans if ans < path: #최장 등산로 갱신하기 ans = path #사방 탐색 : 등산로 탐색 fo..

알고리즘/SWEA 2020.07.08

[백준 2628] 종이자르기 - Python

문제 링크 https://www.acmicpc.net/problem/2628 문제 풀이 세로로 잘리는 위치,가로로 잘리는 위치를 저장하기 위한 리스트 생성하고 0 넣어두기 (시작점) 가로인지 세로인지에 따라서 각각 세로리스트, 가로리스트에 저장 마지막 점 추가( 종이의 가로, 세로크기) 가로, 세로 리스트 정렬 가로/세로 리스트의 두점 (첫번째-두번째, 두번째 - 세번째,…)의 거리 구함 그 중에서 최대값을 구하고 각각 곱하면 정답! 소스 코드 (python) C,R = map(int,input().split()) #세로, 가로 크기 N = int(input()) #자르는 횟수 Rarr = [0] #세로로 잘리는 위치 저장 Carr = [0] #가로로 잘리는 위치 저장 for i in range(N): ..

알고리즘/백준 2020.06.23