오늘의 문제~
무식하게 for문 돌려서 안풀려고 머리 좀 썼다가
2007년 올림피아드 지역본선 초등부 문제길래
자존심 상해서 for문으로 풀기로 했다.
2차원 배열 한줄을 한방에 할당할 수 있는 방법이 있다면 for문 사용을 줄이고 시간복잡도를 훨씬 줄여볼 수 있을텐데 생각한 방법으로 되진 않았다.
n = int(input())
matrix = [['X']*101 for _ in range(101)]
for _ in range(n):
row,col = map(int,input().split())
for i in range(10):
for j in range(10):
matrix[row+i][col+j] = 'O'
result = 0
for i in range(100):
result += matrix[i].count('O')
print(result)
잘풀고 싶었지만 너무 복잡하게 생각하고 싶지 않아서 직관적으로 풀었다.
boolean 자료형을 쓰려다가 출력했을 때 보기 편하라고 O/X로 바꿨다.
2차원 배열을 선언한 후에 배열 한칸당 넓이 1로 계산해서 입력한 인덱스+10 내에 해당하는 요소들을 'X' -> 'O'로 변경하고, O의 개수를 세어 출력하는 방식으로 문제를 해결했다.
이렇게 오늘의 문제 끝~
파이썬.....넘 좋다.....