N

(구름 먼데이챌린지 c++ 2주차)4. 폭탄 구현하기 본문

goorm

(구름 먼데이챌린지 c++ 2주차)4. 폭탄 구현하기

naeunchan 2022. 10. 31. 19:04
728x90
반응형

https://edu.goorm.io/learn/lecture/33428/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%A8%BC%EB%8D%B0%EC%9D%B4-%EC%B1%8C%EB%A6%B0%EC%A7%80-%ED%95%B4%EC%84%A4/lesson/1669558/2%EC%A3%BC%EC%B0%A8-%EB%B3%B5%EC%8A%B5%EB%AC%B8%EC%A0%9C-4-%ED%8F%AD%ED%83%84-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

goorm.co

#include <iostream>
#include <vector>

using namespace std;

int main() {
	int n, k;
	vector<vector<int>> board(21, vector<int>(21, 0));
	int direct_x[4] = {-1, 1, 0, 0};
	int direct_y[4] = {0, 0, -1, 1};
	int answer = 0;
	
	cin >> n >> k;
	
	for(int i = 0; i < k; i++){
		int x, y;
		
		cin >> x >> y;
		
		for(int j = 0; j < 4; j++){
			int nx = x + direct_x[j];
			int ny = y + direct_y[j];
			
			if(nx >= 1 && nx <= n && ny >= 1 && ny <= n){
				board[nx][ny]++;
			}
		}
		board[x][y]++;
	}
	
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= n; j++){
			answer += board[i][j];
		}
	}
	
	cout << answer;
	
	return 0;
}

구현 문제.

 

board를 21 x 21로 선언하고 0으로 초기화 한다.

인덱스르 1로 시작하기 위함이다.

 

폭탄이 떨어질 때마다 떨어지는 위치와 상하좌우에 +1을 해주면 된다.

상하좌우는 board의 범위를 벗어나지 않는다면 +1을 한다.

 

폭탄이 모두 떨어지고 나서 board를 순회해서 answer을 구하면 된다.

728x90
반응형