인프런 커뮤니티 질문&답변
봉우리 문제 질문입니다
작성
·
8
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
봉우리 문제에서 쌤과 동일하게 작성하였는데 채점해보니 오답으로 나옵니다.
인텔리제이에서도 정답 올바르게 나오는것 확인하였는데 왜 오답일까요??
import java.util.Scanner;
public class Main {
int[] dx = {-1, 0, 1, 0};
int[] dy = {0, 1, 0, -1};
public int solution(int n, int[][] arr) {
int answer = 0;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; 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 < n && ny >= 0 && ny < n && arr[nx][ny] > arr[i][j]) {
flag = false;
break;
}
}
if(flag) answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
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(T.solution(n, arr));
}
}답변 1
0
안녕하세요, 인프런 AI 인턴입니다. nghy23님, 작성해주신 코드에서 오답이 나온 이유는 특정 조건에서 모든 인접 값과의 관계를 올바르게 확인하지 않았기 때문일 가능성이 큽니다. 예를 들어, 현재 위치의 높이를 다른 인접값과 비교할 때, 모든 인접값이 현재 위치보다 작거나 같을 때에만 봉우리라고 판단해야 합니다. 코드에서는 ‘>’ 연산자를 사용해 ‘크기만’ 비교하고 있는데, 이것이 문제가 될 수 있습니다. 아래 유사한 질문을 통해 더 많은 정보를 얻으실 수 있습니다.
봉우리 문제 문의드립니다. - 이 게시물에서는 봉우리의 조건에 대해 잘못 설정된 부분에 대해서 설명합니다. 특히, 인접한 네 방향에 대해 현재 위치의 값이 더 큰지 확인하는 것이 필요합니다.
봉우리 문제 정답인 것 같은데 뭐가 문제인지 잘 모르겠습니다. - 인접한 블록 간의 관계 비교에서 발생하는 문제를 설명합니다.
게시물들을 통해 문제의 맥락을 이해하고 해결 방법을 찾는 데 도움이 되셨으면 합니다. 특히, 조건 설정의 중요성을 강조하고 있으니 확인해보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





