본문 바로가기

Algorithm272

[ 자바스크립트(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.
[ 자바스크립트(JavaScript) ] 21 - 등수 구하기 📍 21 - 등수 구하기 이 문제는 boj7568 - 덩치와 비슷한 문제다. 등수 구하기 문제가 쉽다면 덩치 문제를 풀어보자. 모든 경우의 수를 찾는 bruteForce 방법으로 풀면 되는데, 모든 값을 1로 빈 배열을 초기화 시킬 때 Array.from을 이용했다. let n = 5; let arr = [87, 89, 92, 100, 76]; console.log(solution(n, arr)); // 나의코드 function solution(n, arr) { let ans = []; for (let i = 0; i < n; i++) { let rank = 1; for (let j = 0; j < n; j++) { if (arr[i] < arr[j]) rank++; } ans.push(rank); } .. 2021. 8. 13.
[ 자바스크립트(JavaScript) ] 20 - 점수 계산 📍 20 - 점수 계산 문제의 양은 길지만 조금만 생각하면 금방 풀 수 있다. 여기서 중요한 점은 가산점처리인데, 연속으로 맞은 경우에만 +1씩 증가하게 작성해야한다. let n = 10; let scores = [1, 0, 1, 1, 1, 0, 0, 1, 1, 0]; console.log(solution(n, scores)); // 삼항연산자 function solution(n, scores) { let extraPoint = 0; let cnt = 0; for (let score of scores) { score === 1 ? (extraPoint++, (cnt += extraPoint)) : (extraPoint = 0); } return cnt; } // if - else function solu.. 2021. 8. 13.
[ 자바스크립트(JavaScript) ] 19 - 가위 바위 보 📍 19 - 가위 바위 보 경우의수를 잘 따져서 풀어야하는데, if문에 A가 이긴경우, else - if문에 비긴경우, else문(B가 이긴경우)순서로 작성하면 코드의 양을 줄일 수 있다. 두번째 코드는 if - else if - else를 삼항연산자로 압축해서 작성했다. let n = 5; let a = [2, 3, 3, 1, 3]; let b = [1, 1, 2, 2, 3]; console.log(solution(n, a, b)); // && function solution(n, a, b) { let scissor = 1, rock = 2, paper = 3; let ans = ""; for (i = 0; i < n; i++) { if ( (a[i] === scissor && b[i] === pape.. 2021. 8. 13.