강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

지성조님의 프로필 이미지
지성조

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

10. 봉우리

강사님 혹시 어디 부분에서 왜 오류가 나는지 알 수 있을까요..

작성

·

234

0

아래 처럼 작성했는데 답은 나오는데 채점해보면 오답이라고 나와서요 어디부분이 왜 오류인지 알수있을까요?ㅠ.. 아무리 찾아도 뭔가 빼먹은것같은데 모르겠네요..

package sec01;

import java.util.Scanner;

class Main {
	public static int solution(int n , int[][] arr){
		int count = 0;
		
		
		for(int i=0;i<n;i++) {
			for(int j=0;j<n;j++) {
				boolean flag = true;
				
				
				if(i-1 >= 0 && arr[i][j] < arr[i-1][j]) { // 상
					flag = false;
				}
				if(i+1  <  n && arr[i][j] < arr[i+1][j]){ //하
					flag = false;
				}
				if( j-1 >= 0 && arr[i][j] < arr[i][j-1]){ // 좌
					flag = false;
				}
				if(j+1 < n && arr[i][j] < arr[i][j+1]){ // 우
					flag = false;
				}
				
				if(flag) {
					count++;
				}
			}
		}
		return count;
	}

	public static void main(String[] args){
		Scanner kb = new Scanner(System.in);
		
		int n = kb.nextInt();
		int[][] arr = new int[n][n];
		for(int i =0;i<n;i++) {
			for(int j=0;j<n;j++) {
				arr[i][j] = kb.nextInt();
			}
		}
		System.out.println(solution(n,arr));
	}
}

퀴즈

51%나 틀려요. 한번 도전해보세요!

앞에 있는 모든 학생보다 키가 커야 보이는 '보이는 학생' 문제에서, 효율적인 풀이법의 핵심 아이디어는 무엇일까요?

모든 학생의 키를 서로 비교한다.

현재까지 본 학생 중 가장 큰 키를 추적한다.

가장 큰 학생 한 명만 찾는다.

학생들의 키를 오름차순으로 정렬한다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

한 지점이 봉우리가 되려면 인접한 상하좌우 값보다 커야 봉우리가 되는 것입니다.

지성조님의 프로필 이미지
지성조

작성한 질문수

질문하기