-
[백준] 2567 - 색종이 2알고리즘 2023. 5. 24. 15:47728x90
1. 문제
https://www.acmicpc.net/problem/2567
2567번: 색종이 - 2
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록
www.acmicpc.net
2. 접근
1. 보통 x,y가 위에서 내려온다고 고정 관념이 생겨있다면 복잡할 수 있다.
2. 검정 종이 부분은 1로 표시하고, 현재 지점이 1이라면 상하좌우를 체크해서 몇개의 1이 있는지 확인한다
3. 주변의 1이 3개면 드러난 부분은 1개, 주변의 1이 2개면 밖으로 드러난 부분은 2개이다
-> 3번이 중요, 모서리냐 아니냐를 체크하는것
3. 풀이
# 2567 실버 4 import sys input = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,-1,1] board = [[0]*100 for _ in range(100)] n = int(input()) for i in range(n): x,y = map(int,input().split()) for a in range(x,x+10): for b in range(y,y+10): board[a][b] = 1 res = 0 def checking(x,y): global res cnt = 0 if board[x][y] == 1: for i in range(4): nx = x + dx[i] ny = y + dy[i] if board[nx][ny] == 1: cnt += 1 if cnt == 3: res += 1 elif cnt == 2: res += 2 return res for i in range(100): for j in range(100): checking(i,j) print(res)
'알고리즘' 카테고리의 다른 글
[백준] 1337 - 올바른 배열 (0) 2023.05.27 [백준] 2659 - 십자카드 문제 (0) 2023.05.24 [백준] 1235 - 학생 번호 (0) 2023.05.17 [백준] 2002 - 추월 (0) 2023.05.17 [백준] 2564 - 경비원 (0) 2023.05.16