똑같이 풀었는데 왜 오답이 나오는지 모르겠습니다.
227
9 asked
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운
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[][] input) {
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 = input[i][j]+dx[k];
int ny = input[i][j]+dy[k];
if(nx>=0 && ny>=0 && nx<n && ny<n && input[nx][ny]>=input[i][j]) {
flag = false;
break;
}
}
if(flag) answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] input = new int[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
input[i][j]=sc.nextInt();
}
}
System.out.println(T.solution(n, input));
sc.close();
}
}
영 관련 문의는 1:1 문의하기를 이용해주세요.Answer 1
0
for(int k=0;k<4;k++) {
int nx = input[i][j]+dx[k];
int ny = input[i][j]+dy[k];
if(nx>=0 && ny>=0 && nx<n && ny<n && input[nx][ny]>=input[i][j]) {
flag = false;
break;
}
3번째 for문에서는 상,하,좌,우로 탐색을 하시려면
input[i][j] 에 dx나 dy값을 더하는게 아니라
i 또는 j를 직접적으로 바꿔줘야 위치가 변하므로
int nx = i + dx[k];
int ny = i + dy[k]; 로 바꿔줘야 할 것 같습니다.
지금 작성해주신코드는 현재 선택된 봉우리값에 dx,dy값을 더하는것이라 위치가 변하지는 않습니다.
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
19
1
갑자기 채점 사이트가 바뀌었어요
0
19
1
문제 리스트 페이지
0
22
1
채점 사이트 관련 질문드립니다
0
20
1
봉우리 문제 질문입니다
0
79
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
62
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
70
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
67
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
83
2
6-7 강의에서
0
47
1
6-6. 장난꾸러기 질문 있습니다.
0
43
1
강의 수강후 코딩테스트
0
106
1
answer 변수 사용 여부
0
43
1
2중 for문
1
83
2
2-11. 임시반장정하기 (Runtime Error)
0
62
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
68
1
이런 풀이는 어떨까요
0
42
1
자바 스트림 방식의 효율성 질문 드립니다.
0
55
1
알고리즘 자료 구조들..
0
60
1
StringBuilder vs BufferdWriter
0
47
1
원더랜드(프림)
0
47
1
이런 코드는 어떤가요?
0
59
1
bfs 풀이
0
56
1
병합정렬
0
55
1

