반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 자료구조
- python
- 백준 그래프 탐색 파이썬
- 자바
- 알고리즘
- BOJ
- 파이썬
- it
- 프로그래머스 파이썬
- 정보처리기사
- 프로그래머스
- dfs
- 2022년 정보처리기사 실기 1회 가답안
- 그리디
- 백준
- 프로그래밍
- 정보처리기사 실기
- 코드
- 백준 N-Queens
- 코딩
- 백준 백트랙킹
- 정보처리기사 실기 시험
- 2022년 정보처리기사 실기
- 토마토
- 백준 그래프 이론 파이썬
- 백준 토마토 파이썬
- 백준 백트랙킹 파이썬
- 코딩테스트
- 2022년 정보처리기사 실기 가답안
- BFS
Archives
- Today
- Total
코딩,안되면 될때까지
[백준 2468번-안전영역]-파이썬 본문
728x90
반응형
백준 2468번 파이썬 풀이
<문제>
https://www.acmicpc.net/problem/2468
<풀이>-DFS알고리즘 사용, 중복제거/max(map(max,2차원리스트)))
키포인트 : 장마철 내리는 비의 양을 설정하는 방법
1) 그래프에 나타나는 높이정보를 기준으로 비의 양을 설정한다. 이때 중복값을 제거하기 위해 set함수를 사용한다.
height = []
graph = []
for _ in range(n):
data = list(map(int,r().split()))
for i in data:
if i not in height:
height.append(i)
graph.append(data)
<코드설명>
graph의 높이정보를 list형태로 입력받는다.(data = list(map(int,input().split()))
입력받은 list에서 중복값을 제거해 height배열(높이정보 저장하는 배열)에 저장한다.
2) 그래프에 나타나는 높이정보중 최댓값을 기준으로 0~최댓값까지의 값을 기준으로 안전영역을 계산한다.
for k in range(max(map(max,graph))):
<코드설명>
2차원 리스트에서 최댓값을 구하는 방법 : max(map(max,graph))
※주의※ : 단순히 max(2차원리스트)를 하게 되면 2차원리스트의 합이 가장큰 행을 출력하게 된다.
따라서 k값을 0부터 (최댓값-1)까지 설정함으로써 안전영의 크기를 각각 구할 수 있다.
<코드>-파이썬
import sys
sys.setrecursionlimit(100000)
r = sys.stdin.readline
dx = [-1,0,1,0]
dy = [0,-1,0,1]
def dfs(x,y,h):
visited[x][y] = True
for i in range(4):
nx = x+dx[i]
ny = y+dy[i]
if (0<=nx<n) and (0<=ny<n) and not visited[nx][ny] and graph[nx][ny]>h:
dfs(nx,ny,h)
n = int(r())
height = []
graph = []
for _ in range(n):
data = list(map(int,r().split()))
for i in data:
if i not in height:
height.append(i)
graph.append(data)
ans = 1
for k in height: #for k in range(max(map(max,graph))):
count = 0
visited = [[False]*n for _ in range(n)]
for i in range(n):
for j in range(n):
if graph[i][j]>k and not visited[i][j]:
count+=1
dfs(i,j,k)
ans = max(ans,count)
print(ans)
728x90
반응형
'백준 > 백준-파이썬' 카테고리의 다른 글
[백준 14499번 - 주사위 굴리기]-파이썬 (18) | 2022.03.16 |
---|---|
[백준 18406번-럭키 스트레이트]-파이썬 (32) | 2022.03.14 |
[백준 11724번-연결요소의 개수]-파이썬 (16) | 2022.03.12 |
[백준 1012번-유기농 배추]-파이썬 (30) | 2022.03.11 |
[백준 2606번-바이러스]-파이썬 (24) | 2022.03.10 |
Comments