lazylazylazylazylazylazylazylazy

구름 알고리즘 먼데이챌린지 JAVA 2주차 4번문제 폭탄구현하기 본문

프로그래밍/구름 알고리즘 먼데이 챌린지

구름 알고리즘 먼데이챌린지 JAVA 2주차 4번문제 폭탄구현하기

lazylazylazylazylazylazylazylazy 2022. 10. 18. 23:43
728x90
반응형

문제


아래와 같은 그림의 정사각형이 있다. 그림과 같이 정사각형을 동일한 크기의 칸으로 나누었다고 했을 때, 맨 오른쪽, 아래의 칸을 

 이라고 표현한다. 모든 위치에는 폭탄 값이 있는데, 모든 폭탄 값의 초기 값은 

이다.

위 그림을 기준으로 나누어진 사각형 중 하나를 선택하여 폭탄을 떨어트립니다. 폭탄이 떨어진 지점은 

이라고 하면 아래의 노란색 모양으로 폭탄이 터진다.

위의 십자가 모양처럼 폭탄이 터지면 폭탄이 터져 영향을 받은 위치의 폭탄 값 

올라갑니다. 이를 그림으로 표현하면 아래와 같습니다. 이때 폭탄 값은 영향을 받는 횟수만큼 무한히 올라간다. 즉 같은 위치에 여러 번 영향을 받는다면, 그 만큼 폭탄 값이 증가한다.

 

폭탄이 터지는 위치들이 모두 주어졌을 때, 폭탄 값 규칙을 고려하여 모든 폭탄이 떨어졌을 때, 폭탄 값들의 합을 출력하시오.

정사각형 안에 폭탄이 터졌을때 터지는 구역을 +1씩더해줘서 총

그 수의 합을 구하는 문제입니다.

저는 2차원 배열을 설정해서 행과 열의 인덱스가 0일때와

한변의 길이가 n이라고하면 인덱스가 n-1일때를 구별해서 더해주는 수를 다르게 설정하였습니다.

그 이유는 정사각형 경계선에서 터졌을때는 터질곳이 없어 내부에서만 터지기 때문입니다.

이해를 돕기위한 사진

따라서 제 코드는

이중 반복문을 넣어주었고 또한 한변의 길이가 1인 정사각형일때는 

터지는곳이 하나밖에없어 따로 예외처리를위한 if문을 넣어줬습니다!

728x90
반응형
Comments