01-10 04:27
Recent Posts
Recent Comments
관리 메뉴

miinsun

[Algorithm]μ•Œκ³ λ¦¬μ¦˜ μžλ°”_22 λ΄‰μš°λ¦¬ λ³Έλ¬Έ

Algorithm/Java

[Algorithm]μ•Œκ³ λ¦¬μ¦˜ μžλ°”_22 λ΄‰μš°λ¦¬

miinsun 2022. 1. 3. 21:48

 

πŸ’¬ λ¬Έμ œ μ„€λͺ…

지도 정보가 N*N κ²©μžνŒμ— μ£Όμ–΄μ§‘λ‹ˆλ‹€. 각 κ²©μžμ—λŠ” κ·Έ μ§€μ—­μ˜ 높이가 μ“°μ—¬μžˆμŠ΅λ‹ˆλ‹€.

각 격자판의 숫자 쀑 μžμ‹ μ˜ μƒν•˜μ’Œμš° μˆ«μžλ³΄λ‹€ 큰 μˆ«μžλŠ” λ΄‰μš°λ¦¬ μ§€μ—­μž…λ‹ˆλ‹€. λ΄‰μš°λ¦¬ 지역이 λͺ‡ 개 μžˆλŠ” 지 μ•Œμ•„λ‚΄λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”.

격자의 κ°€μž₯μžλ¦¬λŠ” 0으둜 μ΄ˆκΈ°ν™” λ˜μ—ˆλ‹€κ³  κ°€μ •ν•œλ‹€.

λ§Œμ•½ N=5 이고, 격자판의 μˆ«μžκ°€ λ‹€μŒκ³Ό κ°™λ‹€λ©΄ λ΄‰μš°λ¦¬μ˜ κ°œμˆ˜λŠ” 10κ°œμž…λ‹ˆλ‹€.

 

πŸ”¨ μž…μΆœλ ₯ 예

μž…λ ₯ - 첫 쀄에 μžμ—°μˆ˜ N이 주어진닀.(2<=N<=50)

두 번째 쀄뢀터 N쀄에 걸쳐 각 쀄에 N개의 μžμ—°μˆ˜κ°€ 주어진닀.

각 μžμ—°μˆ˜λŠ” 100을 λ„˜μ§€ μ•ŠλŠ”λ‹€.

5
5 3 7 2 3
3 7 1 6 1
7 2 5 3 4
4 3 6 4 1
8 7 3 5 2

좜λ ₯ - λ΄‰μš°λ¦¬μ˜ 개수λ₯Ό 좜λ ₯ν•˜μ„Έμš”.

10

 

 

​

πŸ’» Solution.java

import java.util.Scanner;

public class Main {
	public int solution(int[][] arr) {
		int[] dx = {-1, 0, 1, 0};
		int[] dy = {0, 1, 0, -1};
		int answer = 0;
		
		for(int i = 0; i < arr.length; i++) {
			for(int j = 0; j < arr.length; j++) {
				boolean flag = true;
				for(int k = 0; k < 4; k++) {
					int nx = i + dx[k];
					int ny = j + dy[k];
					
					if(nx >= 0 && nx < arr.length && ny >= 0 && ny < arr.length &&arr[nx][ny] >= arr[i][j]) {
						flag = false;
						break;
					}
				}
				
				if(flag) answer++;
			}
		}
		
		return answer;
	}
	
	public static void main(String[] args){
		Main main  = new Main();
		Scanner sc =new Scanner(System.in);
		int n = sc.nextInt();
		int[][] arr = new int[n][n];
		
		for(int i = 0; i < n; i++) {
			for(int j = 0; j < n; j++) {
				arr[i][j] = sc.nextInt();
			}
		}
		
		System.out.println(main.solution(arr));
		
		sc.close();
		return ;
	}
}

 

 

 

Comments