Algorithm272 [ 자바스크립트(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. [ 자바스크립트(JavaScript) ] 16 - 중복 단어 제거 📍 16 - 중복 단어 제거 중복 문자 제거와 같은 로직으로 풀었는데 이번엔 배열 안에 문자가 들어가있는 문제다. set, indexOf, indexOf + filter를 사용했다. solution(5, ["good", "time", "good", "time", "student"]); // set function solution(s) { return [...new Set(s)].join("\n"); } // indexOf function solution(n, words) { for (let i = 0; i < n; i++){ if(words.indexOf(words[i]) === i){ console.log(words[i]) } } } // filter + indexOf function solution(.. 2021. 8. 12. [ 자바스크립트(JavaScript) ] 15 - 중복 문자 제거 / 중복된 문자 찾기 📍 15 - 중복 문자 제거 / 중복된 문자 찾기 중복되는 문자를 제거하려면 set의 특징인 중복 값 제거를 이용하면 쉽게 풀 수 있다. 강의에서는 indexOf를 사용했는데, 처음 배우는 방법이라 신기했다. 현재 index와 indexOf로 찾은 값이 다르면 중복된 문자, 같으면 처음보는 문자로 판단하는 로직이다. 강의 마지막에 중복된 문자를 찾는 방법도 알려주셨는데 indexOf과 while을 통해 찾을 수 있었다. 여기서 참고할 점은 indexOf(searchElement[, fromIndex])인데, indexOf를 사용 할 때 인자(parameter)를 하나 더 넘기면 해당 index부터 target를 찾는다. while을 사용해서 -1이 나오면 찾는 글자가 없기때문에 break하는 방법을 이용.. 2021. 8. 12. [ 자바스크립트(JavaScript) ] 14 - 가운데 문자 출력 📍 14 - 가운데 문자 출력 프로그래머스 - 가운데 글자 가져오기와 비슷한 문제이다. 가운데를 정하는 mid 변수를 먼저 할당해주고 slice를 이용해 구했다. console.log(solution("good")); // 삼항연산자 function solution(s) { let mid = Math.floor(s.length / 2); return s.length % 2 == 1 ? s[mid] : s.slice(mid-1, mid+1); } 2021. 8. 12. 이전 1 ··· 16 17 18 19 20 21 22 ··· 55 다음