[๋ฐฑ์ค / ํ์ด์ฌ] 2์ฐจ์ ๋ฐฐ์ด - ์์ข ์ด
https://www.acmicpc.net/problem/2563
๋ฌธ์
๊ฐ๋ก, ์ธ๋ก์ ํฌ๊ธฐ๊ฐ ๊ฐ๊ฐ 100์ธ ์ ์ฌ๊ฐํ ๋ชจ์์ ํฐ์ ๋ํ์ง๊ฐ ์๋ค. ์ด ๋ํ์ง ์์ ๊ฐ๋ก, ์ธ๋ก์ ํฌ๊ธฐ๊ฐ ๊ฐ๊ฐ 10์ธ ์ ์ฌ๊ฐํ ๋ชจ์์ ๊ฒ์์ ์์ข ์ด๋ฅผ ์์ข ์ด์ ๋ณ๊ณผ ๋ํ์ง์ ๋ณ์ด ํํํ๋๋ก ๋ถ์ธ๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์์ข ์ด๋ฅผ ํ ์ฅ ๋๋ ์ฌ๋ฌ ์ฅ ๋ถ์ธ ํ ์์ข ์ด๊ฐ ๋ถ์ ๊ฒ์ ์์ญ์ ๋์ด๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.

์๋ฅผ ๋ค์ด ํฐ์ ๋ํ์ง ์์ ์ธ ์ฅ์ ๊ฒ์์ ์์ข ์ด๋ฅผ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋ชจ์์ผ๋ก ๋ถ์๋ค๋ฉด ๊ฒ์์ ์์ญ์ ๋์ด๋ 260์ด ๋๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ข ์ด์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ด ๋์งธ ์ค๋ถํฐ ํ ์ค์ ํ๋์ฉ ์์ข ์ด๋ฅผ ๋ถ์ธ ์์น๊ฐ ์ฃผ์ด์ง๋ค. ์์ข ์ด๋ฅผ ๋ถ์ธ ์์น๋ ๋ ๊ฐ์ ์์ฐ์๋ก ์ฃผ์ด์ง๋๋ฐ ์ฒซ ๋ฒ์งธ ์์ฐ์๋ ์์ข ์ด์ ์ผ์ชฝ ๋ณ๊ณผ ๋ํ์ง์ ์ผ์ชฝ ๋ณ ์ฌ์ด์ ๊ฑฐ๋ฆฌ์ด๊ณ , ๋ ๋ฒ์งธ ์์ฐ์๋ ์์ข ์ด์ ์๋์ชฝ ๋ณ๊ณผ ๋ํ์ง์ ์๋์ชฝ ๋ณ ์ฌ์ด์ ๊ฑฐ๋ฆฌ์ด๋ค. ์์ข ์ด์ ์๋ 100 ์ดํ์ด๋ฉฐ, ์์ข ์ด๊ฐ ๋ํ์ง ๋ฐ์ผ๋ก ๋๊ฐ๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์์ข ์ด๊ฐ ๋ถ์ ๊ฒ์ ์์ญ์ ๋์ด๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ1 | ์์ ์ถ๋ ฅ1 |
3 3 7 15 7 5 2 |
260 |
์์ค ์ฝ๋
# ๋ํ์ง
paper = [[0 for col in range(100)] for row in range(100)]
n = int(input())
for _ in range(n):
x,y = map(int, input().split())
temp_x = x
temp_y = y
# ์์น ํ๊ธฐ
while temp_x < x + 10:
for idx in range(10):
paper[temp_x][temp_y+idx] += 1
temp_x += 1
# ๋ํ์ง๋ฅผ ๋๋ฉด์ ์์น ๋์ด ์์ผ๋ฉด cnt+1
cnt = 0
for row in paper:
for col in row:
if col > 0:
cnt += 1
print(cnt)
ํ์ด
- 100 x 100 ํฌ๊ธฐ ๋ํ์ง 2์ฐจ์ ๋ฆฌ์คํธ๋ก ์ ์
- ์์ข ์ด์ ์๋ฅผ n์ ์ ์ฅ
- ์์ข
์ด์ ์๋งํผ ์์น ํ๋ ๊ณผ์ ์ ๋ฐ๋ณต
- ์์ข ์ด์ ํ ๋ฒํธ๋ฅผ x, ์ด ๋ฒํธ๋ฅผ y์ ์ ์ฅ
- ํ ๋ฒํธ์ ์ด ๋ฒํธ๋ฅผ ์์๋ก temp_x, temp_y์ ์ ์ฅ
- ์์ข ์ด์ ๊ธธ์ด๊ฐ ๊ฐ๋ก์ธ๋ก 10์ด๋ฏ๋ก ํ์ด๋ฒํธ์ +10๋งํผ์ ์์น
- ๋ํ์ง๋ฅผ ๋๋ฉด์ ๊ฐ์ด 1๋ณด๋ค ํฐ ๊ฒฝ์ฐ์ cnt+1
์ฒ์์ ๋ํ์ง๋ฅผ ์ ์ํ ๋ [[0]*100]*100์ผ๋ก ์ ์ํ์๋๋ฐ ์ํ๋ ๋๋ก ๋์ค์ง ์์์ ์ฐพ์๋ณด๋ ์ฐ์ฐ์ *๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ ์ ์ธํ๋ฉด ๋จ์ํ๊ฒ ์์๋ง ๋ณต์ฌํ๋ ์์ ๋ณต์ฌ(shallow copy)๊ฐ ์ผ์ด๋๋ค๊ณ ํ๋ค. ๊ทธ๋์ ๋ฐ๋ผ๋ณด๋ ๊ฐ์ฒด๋ ๋์ผํ๊ณ ๊ฐ์ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ์ ๋ค๋ฅธ ์์์ ๊ฐ๋ ๋ณํ๋ ํ์์ด ๋ฐ์ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. ์ ์ธ ๋ฐฉ์์ ๋ณ๊ฒฝํ๋๊น ๋คํํ ๋ฌธ์ ์์ด ์ ๋ต์ ๊ตฌํ ์ ์์๋ค!!