-코드
n = int(input())
arr = [[0 for _ in range(101)] for _ in range(101)]
c = 0
for _ in range(n):
x, y = map(int, input().split())
for i in range(x, x + 10):
for j in range(y, y + 10):
arr[i][j] = 1
for i in arr:
c += sum(i)
print(c)
처음에는 리스트를 사용하지 않고 최대 값인 100 * n에서 겹치는 부분을 빼려고 하니 겹치는 부분을 구하는 것이 함 들어서 포기를 하고 풀기 위해서 해결방법을 찾아보니 그냥 2차원 리스트를 만들어서 그래프처럼 활용하여 주어진 값에 대한 부분을 다 1로 만들면 겹치는 부분도 어차피 1이 되어 추가적인 변경 없이 다 더하면 값이 나오게 된다는 것을 알게 된 후 리스트를 처음에 [[0] * 101] * 101로 했으나 이렇게 하면 정해진 배열과 별개로 해당하지 않는 부분도 1로 바뀌게 되어서 다시 해결방법을 찾아보니 for문으로 하면 해결이 되었고 출력도 sum(arr)로 해서 출력하려 했으나 0이나 와서 이유를 찾아보니 2차원 배열이라 배열 1개씩 해줘야 한다는 것을 알게 되었습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬]2535번 아시아 정보올림피아드 (0) | 2021.09.01 |
---|---|
[백준/파이썬]2755번 이번학기 평점은 몇점? (0) | 2021.08.31 |
[백준/파이썬]9237번 이장님 초대 (0) | 2021.08.30 |
[백준/파이썬]2417번 정수 제곱근 (0) | 2021.08.30 |
[백준/파이썬]1439번 뒤집기 (0) | 2021.08.30 |