https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • heapq
  • counter
  • 다이나믹프로그래밍
  • 유니온 파인드
  • 그리디
  • DFS
  • Python
  • 이분탐색
  • 그래프
  • 최단경로
  • 최대공약수
  • 다익스트라
  • python3
  • LIS
  • 백트래킹
  • 12015
  • BFS
  • 다이나믹 프로그래밍
  • 큐
  • 유클리드호제법
  • 이분 탐색
  • 프로그래머스
  • 최소힙
  • 재귀함수
  • 재귀
  • MST
  • 스택
  • 파이썬
  • 백준
  • DP

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

알고리즘

백준 10026 파이썬 풀이 (적록색약, DFS)

2021. 7. 17. 23:59

이번 문제는 간단하다. 그냥 같은 영역이 얼마나 되는지 찾아내는 것이다.

1. 일반인을 위한 Map, 적록색약인 사람을 위한 Map('G'와 'R'를 동일하게 보는 사람)

2. DFS를 유연하게 만들어서 시간을 줄인다.

 

n = int(input())
NMap = []
WMap = []
for i in range(n):
    tmp = list(input())
    NMap.append(list(tmp))
    for j in range(n):
        if tmp[j] == "G":
            tmp[j] = "R"
    WMap.append(tmp)
def DFS(x,y, Map):
    s = [(x,y,Map[x][y])]
    Map[x][y] = 0
    dx = [0,0,1,-1] #동서남북
    dy = [1,-1,0,0]

    while s:
        x,y,z = s.pop()
        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]
            if (0<=nx<n) and (0<=ny<n) and (Map[nx][ny] == z):
                s.append([nx,ny,z])
                Map[nx][ny] = 0   

#일반인
count = [0,0]
for i in range(n):
    for j in range(n):
        if NMap[i][j] != 0:
            DFS(i,j, NMap)
            count[0] += 1
        if WMap[i][j] != 0:
            DFS(i,j,WMap)
            count[1] += 1
for i in count:
    print(i, end=" ")

'알고리즘' 카테고리의 다른 글

백준 1202 보석도둑 c++ 풀이 (priority queue, vector, 우선순위 큐)  (0) 2021.07.21
백준 3055 C++ 풀이 (탈출, BFS)  (0) 2021.07.19
백준 2583 파이썬 풀이 (영역 구하기, DFS)  (0) 2021.07.17
백준 1987 파이썬 풀이 (알파벳, DFS)  (0) 2021.07.17
백준 2206 파이썬 풀이 (BFS, 벽 부수고 이동하기, 이차 배열 사용)  (0) 2021.07.12
    '알고리즘' 카테고리의 다른 글
    • 백준 1202 보석도둑 c++ 풀이 (priority queue, vector, 우선순위 큐)
    • 백준 3055 C++ 풀이 (탈출, BFS)
    • 백준 2583 파이썬 풀이 (영역 구하기, DFS)
    • 백준 1987 파이썬 풀이 (알파벳, DFS)
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바