일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- java #자바 #나동빈
- 다이나믹프로그래밍
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- dp
- css #생활코딩 #웹
- java #자바 #생활코딩
- 투포인터
- 재귀
- 파이썬
- css #웹 #생활코딩
- 백트랙킹
- 자바 #java
- BFS
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 백준 #파이썬 #알고리즘 #코딩테스트
- java #자바 #동빈나
- java #자바
- 파이썬 #백준 #알고리즘 #코딩테스트
- react #리액트 #동빈나
- PYTHON
- DFS
- Dijkstra
- 프로그래머스
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- 백준
- 알고리즘
- react #리액트 #동빈나 #나동빈 #유튜브강의
- 코딩테스트
- 백준 #알고리즘 #파이썬 #코딩테스트
- 다익스트라
Archives
- Today
- Total
커리까지
[백준] 14716번 현수막 파이썬 본문
728x90
SMALL
문제
ANT가 처음 알고리즘 대회를 개최하게 되면서 현수막을 내걸었다.
저번 학기 영상처리 수업을 듣고 배웠던 지식을 최대한 응용 해보고 싶은 혁진이는 이 현수막에서 글자가 몇 개인지 알아보는 프로그램을 만들려 한다.
혁진이는 우선 현수막에서 글자인 부분은 1, 글자가 아닌 부분은 0으로 바꾸는 필터를 적용하여 값을 만드는데 성공했다.
그런데 혁진이는 이 값을 바탕으로 글자인 부분 1이 상, 하, 좌, 우, 대각선으로 인접하여 서로 연결되어 있다면 한 개의 글자라고 생각만 하였다.
혁진이가 필터를 적용하여 만든 값이 입력으로 주어졌을 때, 혁진이의 생각대로 프로그램을 구현하면 글자의 개수가 몇 개인지 출력하여라.
입력
첫 번째 줄에는 현수막의 크기인 M와 N가 주어진다. (1 ≤ M, N ≤ 250)
두 번째 줄부터 M+1 번째 줄까지 현수막의 정보가 1과 0으로 주어지며, 1과 0을 제외한 입력은 주어지지 않는다.
출력
혁진이의 생각대로 프로그램을 구현했을 때, 현수막에서 글자의 개수가 몇 개인지 출력하여라.
예제 입력
8 19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0
0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0
0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
예제 출력
3
제출 답안
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**9)
dy = [ 0,1,1,1,0,-1,-1,-1]
dx = [1,1,0,-1,-1,-1,0,1]
m, n = map(int, input().split())
graph = [list(map(int, input().split())) for _ in range(m)]
def dfs(y, x):
for i in range(8):
ny = y + dy[i]
nx = x + dx[i]
if 0 <= ny < m and 0 <= nx < n:
if graph[ny][nx] == 1:
graph[ny][nx] = 0
dfs(ny, nx)
return True
answer = 0
for y in range(m):
for x in range(n):
if graph[y][x] == 1:
graph[y][x] = 0
dfs(y, x)
answer+= 1
print(answer)
728x90
LIST
'알고리즘 > 풀이' 카테고리의 다른 글
[백준] 1189번 컴백홈 파이썬 (0) | 2023.08.01 |
---|---|
[백준] 쉬운 최단거리 파이썬 (0) | 2023.08.01 |
[백준] 1303번 전쟁 - 전투 파이썬 (0) | 2023.07.27 |
[백준] 3184번 양 파이썬 (0) | 2023.07.26 |
[백준] 1743번 음식물 피하기 파이썬 (0) | 2023.07.24 |
Comments