[백준`G5] 10026 - 적록색약 (Python)

2023. 11. 18. 23:48· 알고리즘/백준
목차
  1. 문제 설명
  2. 문제 풀이
728x90

문제 설명

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

 

10026번: 적록색약

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

www.acmicpc.net


문제 풀이

구역의 개수를 구하는 문제이기 때문에 DFS로 풀었다! 

파이썬은 재귀 limit이 있어서 setrecursionlimit으로 최대 재귀 횟수를 설정해주어야 한다.

RGB배열을 만들어 하나씩 꺼내가며 R, G, B구역의 개수 더해가면서 적록색약이 아닌 사람이 봤을 때 구역을 구하였고,

G를 R로 바꾸어 적록색약인 사람이 보는 구역의 수를 구했다.

 

 

import sys
sys.setrecursionlimit(100000)
def dfs(x, y, color):
if x < 0 or x >= n or y < 0 or y >= n:
return False
if not visited[x][y] and area[x][y] == color:
visited[x][y] = True
for k in range(4):
nx = x + dx[k]
ny = y + dy[k]
dfs(nx, ny, color)
return True
return False
n = int(input())
area = [list(input()) for _ in range(n)]
RGB, RB = ['R', 'G', 'B'], ['R', 'B']
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
rst1, rst2 = 0, 0
for c in RGB:
visited = [[False] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if dfs(i, j, c):
rst1 += 1
for i in range(n):
for j in range(n):
if area[i][j] == 'G':
area[i][j] = 'R'
for c in RB:
visited = [[False] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if dfs(i, j, c):
rst2 += 1
print(rst1, rst2)

 

728x90
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 1012 - 유기농 배추 (Python)  (1) 2023.11.21
[백준] 1463 - 1로 만들기 (Python)  (1) 2023.11.20
[백준] 1697 - 숨바꼭질 (Python)  (2) 2023.11.14
[백준`G4] 4179 - 불! (Python)  (2) 2023.11.14
[백준`G5] 7576 - 토마토 (Python)  (0) 2023.11.10
  1. 문제 설명
  2. 문제 풀이
'알고리즘/백준' 카테고리의 다른 글
  • [백준] 1012 - 유기농 배추 (Python)
  • [백준] 1463 - 1로 만들기 (Python)
  • [백준] 1697 - 숨바꼭질 (Python)
  • [백준`G4] 4179 - 불! (Python)
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • Gateway
  • 주간회고
  • 네트워크
  • 리눅스
  • js
  • fe
  • web
  • be
  • Java
  • 프로그래머스
  • 오블완
  • cs
  • db
  • 회고
  • 백준
  • spring boot
  • 우선순위 큐
  • 그리디
  • dfs
  • vue
  • 티스토리챌린지
  • 자료구조
  • 트리
  • DP
  • 구현
  • bfs
  • 알고리즘
  • 실습
  • AWS
  • 백트래킹

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
[백준`G5] 10026 - 적록색약 (Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.