120866. 안전지대 자바

2023. 8. 1. 01:03·문제 풀이/Programmers
728x90
반응형
SMALL

해당 문제를 풀기위한 가장 난관은 가장자리에 있는 폭탄은 어떻게 연산할것인가? 이다.

가장자리가 아닌 배열들은 2차배열값안에서 x축과 y축을 각각 x-1 , x , x+1 // y-1 , y , y-1을 폭탄의 범위로 구한후  나머지 0들의 개수를 계산하면 되지만 가장자리는 위와 같은 범위와 다르게 연산해야한다.

 

📌이때 가장 쉽게 해결 할 수 있는 방법은 원래 범위의 배열보다 상하좌우 전부 1칸씩 확장하는 것이다.

그럼 가장자리도 가운데에 있는 배열처럼 같은 알고리즘으로 해결할 수 있다.

이해하기 쉽게 아래 사진을 첨부해 두었다.

나는 폭탄의 주변을 2로 바꾸는 연산을 수행 후 0의 개수를 파악했다.

이떄 가장자리의 숫자들은 내가 확장한것으로 0이있더라고 세지 않는다.

class Solution {
    public int solution(int[][] board) {
        int answer = 0;
        
        int len = board.length+2;
	
        int[][] arr = new int[len][len];
        
        for(int i=0; i<board.length;i++) {
		for(int j=0; j<board[i].length; j++) {
			if(board[i][j]==1) arr[i+1][j+1]=1;
		}
	}
        
        for(int i=0; i<arr.length;i++) {
		for(int j=0 ; j<arr[i].length ; j++) {
			if(arr[i][j]==1) {
				for(int x = i-1; x<=i+1; x++) {
					for(int z= j-1; z<=j+1; z++) {
						if(arr[x][z]!=1) {
							arr[x][z] =2;
//							System.out.println("x :" + x + " z" + z);
						}
					}
				}
			}//if
		}
	}

    int cnt=0;
	for(int i=1; i<arr.length-1;i++) {
		for(int j=1; j<arr.length-1;j++) {
			if(arr[i][j]==0) cnt++; 
		}
	}
                
        return cnt;
    }
}

728x90
반응형
SMALL

'문제 풀이 > Programmers' 카테고리의 다른 글

[자바]120956 프로그래머스 옹알이 문제 코드 첨부  (1) 2023.08.12
프로그래머스42889. 실패율 자바  (0) 2023.08.09
120875. 평행 (자바) 문제에 함정이 있습니다 꼭 읽어보세요!  (0) 2023.08.06
181916. 주사위 게임 3 자바  (0) 2023.07.31
181893. 배열 조각하기 자바  (0) 2023.07.31
'문제 풀이/Programmers' 카테고리의 다른 글
  • 프로그래머스42889. 실패율 자바
  • 120875. 평행 (자바) 문제에 함정이 있습니다 꼭 읽어보세요!
  • 181916. 주사위 게임 3 자바
  • 181893. 배열 조각하기 자바
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
IT - railroadIT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (313)
      • 면접 준비 (35)
        • OS (6)
        • Spring Security (0)
        • Java (1)
        • DB (9)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      HTML
      자바 면접
      레디스
      자바 알고리즘
      자바 반복문
      자바스크립트
      자바
      redis
      JavaScript
      리눅스마스터2급정리
      redis 채팅
      스프링프레임워크
      JS
      JSP
      Springframework
      java
      프로그래머스
      Spring Data Redis
      리눅스마스터2급
      자바기초
      리눅스
      jsp기초
      Spring
      springsecurity
      Til
      spring redis
      jsp request
      백준
      자바 면접질문
      CSS
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    120866. 안전지대 자바

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.