본문 바로가기

Algorithm/인프런(inflearn)86

[ 자바스크립트(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.
[ 자바스크립트(JavaScript) ] 18 - 보이는 학생 📍 18 - 보이는 학생 이 문제를 보자마자 boj2493 - 탑과 유사하다는 생각이 들었다. (비록 python으로 풀긴했지만..) 보이는 학생 문제는 그다지 어렵지 않았다. 대신 주의할 점은 이전 index의 값을 알고있어야 대소관계를 알 수 있는데, 제일 첫번째 학생은 비교 대상이 없기 때문에 stack에 넣고 시작하면 된다. 강의영상에서는 값을 누적하는 대신 할당하는것으로 풀었는데, 굳이 빈 배열에 push 하지 않고도 값을 구할 수 있는것이 좋았다. console.log(solution([130, 135, 148, 140, 145, 150, 150, 153])); // 나의 코드 function solution(students) { let stack = []; let cnt = 1; stack... 2021. 8. 13.
[ 자바스크립트(JavaScript) ] 17 - 큰 수 출력하기 📍 17 - 큰 수 출력하기 이번 섹션은 1, 2차원 탐색을 해보는 섹션이다. 자신의 바로 앞의 값만 비교한다는 점을 고려해서 reduce 함수를 사용했다. reduce함수의 인자로 넘겨줄 acc, cur에서 acc를 이전 단계의 cur로 return해주면 바로 이전 index와 비교하게 된다. (맨 처음에는 0을 넘겨주자.) reduce 함수 이외에도 for문으로 풀 때 그다지 어렵지 않았는데, 맨 앞의 값을 비교할 때는 이전 값이 없기 때문에 0을 추가해줬다. (혹은 Number.MIN_SAFE_INTEGER을 할당해줘도 된다.) console.log(solution([7, 3, 9, 5, 6, 12])); // reduce function solution(arr) { let answer = []; .. 2021. 8. 13.