BOJ/백준-2563-Python

cosmos·2023년 6월 1일
0
post-thumbnail

문제

코드

result = 0
arr = [[0]*100 for _ in range(100)]

for _ in range(int(input())):
    m, n = map(int, input().split())
    for i in range(m, m+10):
        for j in range(n, n+10):
            arr[i][j] = 1
for i in arr:
    ans += i.count(1)

print(result)

결과

ChatGPT Code

# 도화지 생성
paper = [[0] * 100 for _ in range(100)]

# 입력 처리
n = int(input())
for _ in range(n):
    x, y = map(int, input().split())
    # 색종이의 왼쪽 변과 아래쪽 변을 기준으로 검은 영역 표시
    for i in range(x, x + 10):
        for j in range(y, y + 10):
            paper[i][j] = 1

# 검은 영역의 넓이 계산
area = sum(sum(row) for row in paper)
print(area)

ChatGPT 문제풀이

주어진 문제는 가로 세로 크기가 100인 정사각형 도화지 위에 가로 세로 크기가 10인 정사각형 색종이를 평행하도록 붙인 후, 색종이가 붙은 검은 영역의 넓이를 구하는 문제입니다. 색종이의 수와 각 색종이의 위치가 주어지며, 출력으로는 색종이가 붙은 검은 영역의 넓이를 출력해야 합니다.
입력 예제에서는 색종이의 수가 3이며, 첫 번째 색종이의 위치는 (3, 7), 두 번째 색종이의 위치는 (15, 7), 세 번째 색종이의 위치는 (5, 2)입니다.
해결을 위해 다음과 같은 접근 방법을 사용할 수 있습니다.
100x100 크기의 도화지를 생성합니다.
입력된 색종이의 수에 따라 반복문을 실행합니다.
각 색종이의 위치를 기준으로 검은 영역을 표시합니다.
검은 영역의 넓이를 계산하고 출력합니다.

ChatGPT 문제풀이와의 비교

ChatGPT 시간복잡도: O(N)
내 코드 시간복잡도: O(N) 으로 효율성 동일하다.

문제출처 & Github

boj 2563
Github

0개의 댓글