Baekjoon

2567. 색종이 - 2

영끼끼 2025. 2. 20. 21:55

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