본문 바로가기
코딩테스트/Python

[python 구름] 폭탄 구현하기

by nahkim 2023. 5. 11.

📜 접근 방법

  1. 인접하는 좌표 즉, 상하좌우를 계산하는 배열을 만든다 (dx, dy)
  2. 리스트로 현재 주어진 땅덩어리?를 만든다 ground
  3. 주어지는 값이 k 만큼이므로 k번 반복한다.
    1. 입력 받은 x, y에 대해 ground[x][y] 위치에 + 1 해준다.
    2. 상하좌우를 확인하여 유효할 경우 +1을 해준다.
  4. ground에 주어진 숫자들을 더한다.

 

❌ 실패 코드

x와 y에 -1씩 해주는 것을 처음에 하지 않았다.

 

✅ 정답 코드

# from pprint import pprint
import sys
input = sys.stdin.readline

# 상하좌우
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]

n, k = map(int, input().split())
ground = [([0] * n) for _ in range(n)]

for i in range(k):
	y, x = map(int, input().split())
	y -= 1
	x -= 1
    # 현재 위치 + 1
	ground[x][y] += 1

	for i in range(4):
		nx = x + dx[i]
		ny = y + dy[i]
		# 주어진 리스트 밖에 나가지 않을 경우
		if nx >= 0 and nx < n and ny >= 0 and ny < n:
			ground[nx][ny] += 1
			# pprint(ground)

res = 0
for arr in ground:
	res += sum(arr)
print(res)

 

💡알게 된점

파이썬에 있는 라이브러리들을 좀더 잘 활용해야겠다!