nx,ny에 대한 질문
if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j]) {
flag = false;
break;
}
이 조건에 대해 질문이 있습니다.
nx>=0 && nx<n && ny>=0 && ny<n 이것이 가장자리를 찾는 조건식인 것은 알겠습니다.
그런데 if조건식이 and연산자로 이루어져있어서 하나라도 false이면 if문이 돌아가지 않는것으로 알고있습니다.
그럼 가장자리에 있는 값들 중에 arr[i][j]보다 큰 값들만 if문을 돌면서 flag를 false로 주는 것인데
가장자리가 아니면서 arr[i][j]보다 큰 값들은 어디서 비교를 하나요??
또, arr의 n의 개수를 그냥 n으로 잡으면 가장자리를 0으로 초기화를 언제 시키는 것인지 궁금합니다
제가 처음 풀었을때 arr을 arr[n+2][n+2]로 잡고 (i=1;i<n;i++)로 이중for문을 돌려 풀었습니다 이렇게 풀어도 되는건가요?
답변 1
0
안녕하세요. 저도 초보 수강생이지만, 제가 이해한 바를 토대로 답변을 드리자면
질문1. nx>=0 && nx<n && ny>=0 && ny<n 이것이 가장자리를 찾는 조건식인 것은 알겠습니다.
가장자리가 아니면서 arr[i][j]보다 큰 값들은 어디서 비교를 하나요??
답변
"가장 자리"라는게 (0,0)기준으로한다면, 왼쪽, 위쪽 좌표를 표현하신거죠? 맞다면,
if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j]) { }
위 조건문은 가장자리가 아니면서 + 타겟 봉우리보다 더 큰경우 (->봉우리가 아니다) 로직입니다.
가장자리는 검증할 필요가 없습니다.(가장자리의 높이를 0이라 생각하면 될거같습니다. 0이라 타겟 봉우리보다 항상 낮으니까 검증할 필요가 없는거죠)
질문2. "또, arr의 n의 개수를 그냥 n으로 잡으면 가장자리를 0으로 초기화를 언제 시키는 것인지 궁금합니다"
답변: 선생님의 풀이코드는 "가장자리를 0으로 초기화할 필요 없이, 그냥 무시하는 풀이" 입니다.
가장자리는 if(nx>=0 && nx<n && ny>=0 && ny<n) 이 조건문안으로 들어가지 않습니다.
예를 들자면, 1x1 arr가 있으면, 사방면이 전부 가장자리가 되잖아요?
4면 모두가 위 조건문 내부로 들어가지 않아, 결국 봉우리로 판단 되는 동작이죠.
화이팅 하세요~!
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
19
1
갑자기 채점 사이트가 바뀌었어요
0
19
1
문제 리스트 페이지
0
22
1
채점 사이트 관련 질문드립니다
0
20
1
봉우리 문제 질문입니다
0
78
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
42
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
55
1
병합정렬
0
55
1





