[2017 ์นด์นด์˜ค์ฝ”๋“œ ์˜ˆ์„ ] ์ปฌ๋Ÿฌ๋ง๋ถ - ํŒŒ์ด์ฌ

2022. 3. 16. 19:00ยท๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/1829

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์นด์นด์˜คํ”„๋ Œ์ฆˆ ์ปฌ๋Ÿฌ๋ง๋ถ

6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5]

programmers.co.kr

์˜์—ญ์˜ ์ˆ˜์™€ ๊ฐ€์žฅ ํฐ ์˜์—ญ์˜ ๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

๋ฌธ์ œํ’€์ด

ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” bfs ๋ฌธ์ œ์™€ ์œ ์‚ฌํ•˜๋‹ค.

que์— ์ขŒํ‘œ๋ฅผ ๋„ฃ๊ณ  que๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ move๋ฅผ ์ด์šฉํ•ด ์ฃผ์œ„ ์ขŒํ‘œ(์ƒ,ํ•˜,์ขŒ,์šฐ)๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ , ๋™์ผํ•œ ๊ฐ’์„ ์ง€๋‹Œ ์ขŒํ‘œ๋Š” que์— ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•œ๋‹ค. ํ•ด๋‹น ์ขŒํ‘œ๋ฅผ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๋ฉด check ๊ฐ’์„ ๋ฐ”๊ฟ”์ฃผ์–ด ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ ํ•ด์ค€๋‹ค.

 

bfs๋ฅผ ์ƒˆ๋กœ ์‹คํ–‰ํ•  ๋•Œ ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์˜์—ญ์„ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์˜์—ญ ๊ฐ’(answer[0])์— 1์„ ๋”ํ•ด์ฃผ๊ณ ,

bfs๋ฅผ return ํ•˜๊ธฐ ์ „์— ๊ธฐ์กด์˜ ๊ฐ€์žฅ ํฐ ์˜์—ญ ๊ฐ’(answer[1])๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ค€๋‹ค.

 

 

์ฝ”๋“œ

import sys
from collections import deque

def bfs(x,y,answer):
	que=[(x,y)]
	temp=picture[x][y]
	move=[[1,0],[-1,0],[0,1],[0,-1]]
	count=1
	check[x][y] =1
	while que:
		x,y=que.pop()
		for i in move:
			dx=x+i[0]
			dy=y+i[1]
			if 0<=dx<m and 0<=dy<n:
				if temp==picture[dx][dy] and not check[dx][dy]: ##์ƒ‰์ด ๊ฐ™์œผ๋ฉด์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
					count+=1
					check[dx][dy]=1
					que.append((dx,dy))
					
	answer[0]+=1
	answer[1]=max(answer[1],count)
	return 

def solution(m, n, picture):
	answer = [0,0]
	for i in range(m):
		for j in range(n):
			if check[i][j]==0 and picture[i][j]!=0:
				bfs(i,j,answer) #์ƒˆ๋กœ์šด ์˜์—ญ ํƒ์ƒ‰
	return answer
    
if __name__ == "__main__":
    input = sys.stdin.readline
    m, n = map(int, input().split())
    picture = [list(map(int, input().split())) for _ in range(m)]
    check = [[0] * n for _ in range(m)]
    number_of_area, max_size_of_one_area = solution(m, n, picture)
    print(number_of_area, max_size_of_one_area)

 

  

'๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜ > PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ/๋ฐฑ์ค€] 2160 ๊ทธ๋ฆผ๋น„๊ต - ํŒŒ์ด์ฌ  (0) 2022.05.11
[๋ฐฑ์ค€/BOJ] 1449 ์ˆ˜๋ฆฌ๊ณต ํ•ญ์Šน - ํŒŒ์ด์ฌ  (0) 2022.05.08
[BOJ/๋ฐฑ์ค€] 9024 ๋‘ ์ˆ˜์˜ ํ•ฉ - ํŒŒ์ด์ฌ  (0) 2021.11.01
[BOJ/๋ฐฑ์ค€] 20041 Escaping - ์ž๋ฐ”,ํŒŒ์ด์ฌ  (2) 2021.10.08
[BOJ/๋ฐฑ์ค€] 20047 ๋™์ „ ์˜ฎ๊ธฐ๊ธฐ - ์ž๋ฐ”  (5) 2021.10.05
'๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [BOJ/๋ฐฑ์ค€] 2160 ๊ทธ๋ฆผ๋น„๊ต - ํŒŒ์ด์ฌ
  • [๋ฐฑ์ค€/BOJ] 1449 ์ˆ˜๋ฆฌ๊ณต ํ•ญ์Šน - ํŒŒ์ด์ฌ
  • [BOJ/๋ฐฑ์ค€] 9024 ๋‘ ์ˆ˜์˜ ํ•ฉ - ํŒŒ์ด์ฌ
  • [BOJ/๋ฐฑ์ค€] 20041 Escaping - ์ž๋ฐ”,ํŒŒ์ด์ฌ
.๋ฐ.
.๋ฐ.
  • .๋ฐ.
    Do IT
    .๋ฐ.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (40)
      • ๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜ (21)
        • PS (16)
        • SQL (4)
        • ์ด๋ก  (5)
      • ๐ŸŽˆcapstone (2)
      • ๐Ÿ’ชBackend (12)
        • Django (8)
        • Spring (4)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ฝ”ํ…Œ
    ์„œ๋ธŒ์ฟผ๋ฆฌ
    python
    ์žฌ๊ท€
    ์‘๋‹ตํ˜•์‹
    ์ž๋ฐ”
    ETL
    ๋ฐฑ์ค€
    ์Šคํ”„๋ง๋ฐฐ์น˜
    apiresponse
    SQL
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    BFS
    ํŒŒ์ด์ฌ
    responsecustomclass
    PS
    crud
    bruteforce
    ์Šค์ผ€์ค„๋Ÿฌ
    MYSQL
    ๋ฌธ์ œํ’€์ด
    programmers
    Batch
    Django
    BOJ
    springscheduler
    ๋‹ค์ค‘์กฐ์ธ
    resposneentity
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    windowํ•จ์ˆ˜
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
.๋ฐ.
[2017 ์นด์นด์˜ค์ฝ”๋“œ ์˜ˆ์„ ] ์ปฌ๋Ÿฌ๋ง๋ถ - ํŒŒ์ด์ฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”