์ํ์ ์๋ฆฌ ๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ/ํจ์๋ค ์์ฑ์ ์ด์ฉํ์
์ฒซ ์ ๊ทผ์ ์ํ์
for๋ฌธ ํ๋๋ผ๋ ๋ ์ค์ฌ์ ์๊ฐ์ ์ค์ฌ๋ณด์
#๋ฐฐ์ด์์ฑ #2์ฐจ์๋ฐฐ์ด
2์ฐจ์ ๋ฐฐ์ด์ ์ด์ฉํ์ฌ ํฐ์ ๋ํ์ง๋ฅผ 100*100์ 0์ผ๋ก ์ด๊ธฐํํด๋๊ณ
์์ข
์ด ๋ฐ์ ๋๋ง๋ค 1๋ก ๋งคํํ์ฌ ์ต์ข
๋ํ์ง ๊ฐ๋ค์ ํฉ์ ๊ตฌํ์
for loof
์ array
์์ฑ์ ์ด์ฉํ์ฌ 1๋ก ๋งคํํ์import sys
input = sys.stdin.readline
graph = [[0]*100 for _ in range(100)] #๋ํ์ง ์ด๊ธฐํ
for _ in range(int(input().rstrip())):
x,y = map(int, input().split())
for i in range(y,y+10):
graph[i][x:x+10] = [1]*10 #array ์์ฑ์ ์ด์ฉํ์ฌ for loof์ฒ๋ผ ๋์
print(sum(map(sum,graph)))
import sys
input = sys.stdin.readline
graph = [[0]*100 for _ in range(100)]
for _ in range(int(input().rstrip())):
x,y = map(int, input().split())
for i in range(y,y+10):
for j in range(x,x+10):
graph[i][j] = 1
print(sum(map(sum,graph)))
๐๐ป ํ
์คํธ์ผ์ด์ค for loof์ ์ ์ธํ๋๋ผ๋ for loof์ด ์ด 2๊ฐ๋ผ O(N2)์ผ๋ก,
์ด 116ms ์๊ฐ์ด ๊ฑธ๋ ธ์
์ ์ง ๋ฌธ์์ด์ฒ๋ผ array์๋ graph[y:y+10][x:x+10]
๊ณผ ๊ฐ์ ๋ฌธ๋ฒ์ด ์กด์ฌํ ๊ฒ ๊ฐ์ ์๋ํด๋ดค์ง๋ง ์๋ฌ๊ฐ ๋ฐ์ํ์ฌ ๋ฐฑ์ค ์ ์ ๋ค์ ์์ฝ๋ฉ์ ์ฐธ๊ณ ํจ
for i in range(y,y+10):
for j in range(x,x+10):
graph[i][j] = 1
์ ์๋์ ๊ฐ์ด ๊ฐ์ ํจ
for i in range(y,y+10):
graph[i][x:x10] = [1]*10
๐๐ป ์๋ฌด๋๋ graph[y:y+10][x:x+10]
์ 1๋ฒ์งธ ์ธ๋ฑ์ค์ 2๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ ๊ตฌ๋ถ์ด ์ ๋งคํ๋ค๋ณด๋
[x:x+10]
๊ณผ ๊ฐ์ ๋ฌธ๋ฒ์ 1ํ๋ง ์ ์ฉ๋๋ ๊ฒ ๊ฐ์
์๊ฐ์ 112ms๋ก 4ms ์ค์ด๋ ๊ฒ์ ํ์ธํ ์ ์์์