[ 자바스크립트(JavaScript) ] 23 - 봉우리
📍 23 - 봉우리 자신의 상하좌우 숫자보다 큰 숫자의 개수를 찾으면 되는데, 상하좌우를 판별할 때는 dx, dy와 같이 방향 벡터를 설정해주면 확인하기 편하다. 나는 이렇게 풀었다. 상, 하, 좌, 우의 좌표를 하나씩 탐색하고 최댓값을 갱신한다. max로 갱신된 주변 좌표와 원래 나의 좌표와 비교한다음 원래 나의 좌표가 더 크면 cnt++ 해준다. 강사님은 이렇게 푸셨다. flag를 설정한다. 원래 나의 좌표보다 주변좌표가 크면 flag를 0으로 바꾼다. 주변 좌표의 탐색이 끝났는데도 flag가 1이면 원래 나의 좌표가 큰 것이므로 cnt++ 해준다. let n = 5; let arr = [[5, 3, 7, 2, 3], [3, 7, 1, 6, 1], [7, 2, 5, 3, 4], [4, 3, 6, 4,..
2021. 8. 17.
[ 자바스크립트(JavaScript) ] 22 - 격자판 최대합
📍 22 - 격자판 최대합 n*n의 격자판에서 각 행, 각 열, 두 대각선의 합 중 가장 큰 값을 출력하면 되는데, 첫 번째로 row의 합을 구할때는 반복문을 하나만 선언해서 reduce를 이용했고, column의 합은 중첩반복문을 선언해서 i, j값을 구했다. 대각선은 좌측 상단에서 우측 하단의 방향의 대각선 arr[i][i]과 우측 상단에서 좌측 하단의 방향의 대각선 arr[i][n-i-1]의 방법을 이용해서 구했다. // 가로, 세로, 대각선 로직을 각각 작성한 코드 let n = 5; let arr = [ [10, 13, 10, 12, 15], [12, 39, 30, 23, 11], [11, 25, 50, 53, 15], [19, 27, 29, 37, 27], [19, 13, 30, 13, 19]..
2021. 8. 17.