본문 바로가기

inflearn78

[ 자바스크립트(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) ] 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.