티스토리 뷰

https://www.acmicpc.net/problem/10026

 

10026번: 적록색약

적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록)

www.acmicpc.net

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from collections import deque
 
dd = ((01), (10), (-10), (0-1))
= int(input())
graph = [[c for c in input()] for _ in range(n)]
visited = [[False* n for _ in range(n)]
answer = [00]
= deque()
 
# 일반인
for i in range(n):
    for j in range(n):
        if not visited[i][j]:
            color = graph[i][j]
            answer[0+= 1
            q.append((i, j))
            visited[i][j] = True
            while q:
                y, x = q.popleft()
                for d in range(4):
                    dy, dx = y + dd[d][0], x + dd[d][1]
                    if 0 <= dy < n and 0 <= dx < n and not visited[dy][dx] and color == graph[dy][dx]:
                        visited[dy][dx] = True
                        q.append((dy, dx))
# 적록색약
visited = [[False* n for _ in range(n)]
for i in range(n):
    for j in range(n):
        if not visited[i][j]:
            color = graph[i][j]
            answer[1+= 1
            q.append((i, j))
            visited[i][j] = True
            while q:
                y, x = q.popleft()
                for d in range(4):
                    dy, dx = y + dd[d][0], x + dd[d][1]
                    if 0 <= dy < n and 0 <= dx < n and not visited[dy][dx]:
                        if color == 'B' and color == graph[dy][dx]:
                            visited[dy][dx] = True
                            q.append((dy, dx))
                        elif color != 'B' and graph[dy][dx] != 'B':
                            visited[dy][dx] = True
                            q.append((dy, dx))
print(answer[0], answer[1])
cs

bfs로 돌면서 풀면 된다.

주의할 점은, 큐에 넣는 순간 visited를 설정해야 한다는 것.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함