🧩 Algorithm/[BOJ] Silver

[BOJ] 2563. 색쒅이 (Python/κ΅¬ν˜„/Silver 5)

devCloud 2024. 11. 4. 18:01
728x90

[문제 링크] πŸ‘‰https://www.acmicpc.net/problem/2563


풀이

πŸ’‘ 100x100 λ„ν™”μ§€μ˜ 각 μ’Œν‘œλ₯Ό ν•˜λ‚˜μ˜ 큰 이차원 λ°°μ—΄λ‘œ μƒκ°ν•˜μ—¬ ν•΄λ‹Ή μœ„μΉ˜λ₯Ό μ°¨μ§€ν•˜κ³  μžˆλŠ” 색쒅이 μœ„μΉ˜λ₯Ό 체크

 

각 μƒ‰μ’…μ΄μ˜ μ’Œν‘œμ— ν•΄λ‹Ήν•˜λŠ” μ˜μ—­μ„ 배열에 ν‘œμ‹œν•œ λ‹€μŒ, 전체 λ°°μ—΄μ—μ„œ 검은색 μ˜μ—­μ˜ 넓이λ₯Ό κ΅¬ν•˜λ©΄ λœλ‹€.

 

 

100x100 λ°°μ—΄ 생성

  • paper 배열을 λ§Œλ“€μ–΄ λ„ν™”μ§€μ˜ 각 μœ„μΉ˜μ— 색쒅이가 λΆ™μ—ˆλŠ”μ§€ 확인할 수 μžˆλ„λ‘ ν•œλ‹€.

색쒅이 뢙이기

  • 각 μƒ‰μ’…μ΄μ˜ μ’Œν‘œ (x, y)μ—μ„œ μ‹œμž‘ν•˜μ—¬, 10x10 크기의 μ •μ‚¬κ°ν˜• μ˜μ—­μ— ν•΄λ‹Ήν•˜λŠ” paper λ°°μ—΄μ˜ 값듀을 1둜 μ„€μ •

검은 μ˜μ—­ 계산

  • λͺ¨λ“  행을 μˆœνšŒν•˜λ©° 1둜 μ„€μ •λœ μ˜μ—­μ„ ν•©μ‚°ν•˜μ—¬ 검은 μ˜μ—­μ˜ 넓이λ₯Ό κ΅¬ν•œλ‹€.

 

Solution

N = int(input())  # 색쒅이 수
paper = [[0] * 100 for _ in range(100)]  # 100x100 크기의 도화지 λ°°μ—΄ 생성

for _ in range(N):
    x, y = map(int, input().split())
    # 색쒅이가 μ°¨μ§€ν•˜λŠ” μ˜μ—­μ„ 1둜 ν‘œμ‹œ
    for i in range(x, x + 10):
        for j in range(y, y + 10):
            paper[i][j] = 1

# 검은 μ˜μ—­ 넓이 계산
black_area = sum(sum(row) for row in paper)
print(black_area)

 

 

πŸ‘©‍πŸ’» 회고

μ›λž˜λŠ” κ²ΉμΉ˜λŠ” 뢀뢄을 κ΅¬ν•˜λ €κ³  μ˜¨κ°– μˆ˜ν•™μ‹μ„ λŒ€λ™μ›ν•΄μ„œ ν’€μ—ˆλŠ”λ° μ‹€νŒ¨ν–ˆλ‹€. 문제λ₯Ό λ„ˆλ¬΄ μ§κ΄€μ μœΌλ‘œλ§Œ 보고 μƒκ°ν•œ 것 κ°™λ‹€. 


 

728x90