[백준] 1012, 1085 - Python3
1085. 직사각형에서 탈출
https://www.acmicpc.net/problem/1085
내 풀이 - 성공
x, y, w, h = map(int, input().split())
ans = min(x, y, w-x, h-y)
print(ans)
(x, y)
와 직사각형의 경계선까지의 경우는 총 4 가지이므로
그 중 최솟값을 찾아서 출력
1012. 유기농 배추
https://www.acmicpc.net/problem/1012
내 풀이 - 성공
import sys
sys.setrecursionlimit(10**6)
def func(field, i, j):
field[i][j] = 0
if i > 0 and field[i-1][j]:
func(field, i-1, j)
if j > 0 and field[i][j-1]:
func(field, i, j-1)
if i < len(field)-1 and field[i+1][j]:
func(field, i+1, j)
if j < len(field[0])-1 and field[i][j+1]:
func(field, i, j+1)
ans = []
T = int(input())
for _ in range(T):
M, N, K = map(int, input().split())
field = []
for _ in range(N):
field.append([0]*M)
for _ in range(K):
x, y = map(int, input().split())
field[y][x] = 1
a = 0
for i in range(N):
for j in range(M):
if field[i][j]:
a += 1
func(field, i, j)
ans.append(a)
for a in ans:
print(a)
field
값이 1 이면 재귀 돌려서 인접한 모든 배추들을 0 으로 바꿔주기
그때마다 a + 1
해주며 세준 지렁이를 ans
에 저장해서 한번에 출력
여기서 포인트는
import sys sys.setrecursionlimit(10**6)
다!!!
파이썬의 기본 재귀 깊이 제한은 1000으로 매우 얕은 편이므로
setrecursionlimit => Python이 정한 최대 재귀 깊이를 변경해줘야 함
Author And Source
이 문제에 관하여([백준] 1012, 1085 - Python3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsh5408/백준-1012-1085-Python3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)