https://www.acmicpc.net/problem/2567
✅예시로 주어진 케이스에서는 반례가 없습니다. 반례를 찾는 연습을 해보세요!
import sys
sys.stdin = open('input.txt')
input = sys.stdin.readline
N = int(input()) # 색종이의 수
board = [[0]*100 for _ in range(100)]
paper = []
for _ in range(N):
x,y = map(int,input().split())
paper.append([y,x]) # 어차피 배열이 상하 반전되도 똑같음 상관 X
#-------------------------------------------------
# 1. 색종이 붙이기
#-------------------------------------------------
for y,x in paper:
for y_p in range(y,y+10):
for x_p in range(x,x+10):
board[y_p][x_p] = 1
#-------------------------------------------------
# 2. 색종이 외곽선 길이 구하기
#-------------------------------------------------
ans = 0
delta = [[1,0],[-1,0],[0,1],[0,-1]]
for i in range(100):
for j in range(100):
if board[i][j] == 1: # 색종이 부분만 확인
for dy, dx in delta: # 네 방향 탐색
ni, nj = i + dy, j + dx
if ni < 0 or ni >= 100 or nj < 0 or nj >= 100 or board[ni][nj] == 0:
ans += 1 # 경계를 만나면 외곽선 길이 추가
print(ans)
'Baekjoon' 카테고리의 다른 글
10709. 기상캐스터 (0) | 2025.02.20 |
---|---|
2346. 풍선터뜨리기 (1) | 2025.02.19 |
28279. 덱 2 (1) | 2025.02.19 |
11866. 요세푸스 문제 0 (1) | 2025.02.19 |
2164. 카드 2 (0) | 2025.02.19 |