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)κ° μΌμ΄λλ€κ³ νλ€. κ·Έλμ λ°λΌλ³΄λ κ°μ²΄λ λμΌνκ³ κ°μ λ³κ²½ν κ²½μ°μ λ€λ₯Έ μμμ κ°λ λ³νλ νμμ΄ λ°μνλ κ°μ λ³κ²½νμ§ μλ κ²½μ°μλ§ μ¬μ©νλ κ²μ΄ μ’λ€κ³ νλ€. μ μΈ λ°©μμ λ³κ²½νλκΉ λ€νν λ¬Έμ μμ΄ μ λ΅μ ꡬν μ μμλ€!!