전체 글

[처음 푼 풀이] if(a === b){return a} else{ return a + b + ...? } 처음에 풀이를 if - else 를 이용해서 풀어보려고 했음 하지만 위 풀이와 같이 a 와 b 사이에 있는 값의 합을 구할 수가 없음 결과값은 a + (a+1) + (a+2) + ... + b 이고 계속 1씩 증가하기 때문에 for문을 돌려야겠다고 생각함! [예시] const arr = [1, 2, 3, 4]; let sum = 0; for(let i = 0; i < arr.length; i++){ sum += arr[i]; } return sum; 예시처럼 배열안의 값을 더할 때는 sum에 arr[0] , arr[1] , ... 반복하면서 값을 누적시켜 더해주는 것 하지만, 문제에서는 배열을 만들..
[처음 푼 풀이] function solution(price, money, count) { let fee = 0; for (let count = 1; count fee) return 0; } 1. 먼저 요금을 반환받을 변수 설정 2. for문 안에서 count를 변수로 주고 요금에 원래가격 * 횟수 를 곱해 누적시킴 3. 그리고 요금에서 가지고 있던 돈을 빼서 리턴받음 4. 근데 여기서.. count
[풀이] 이번 문제는 어려웠던 문제였음! 1. 소수찾는 법을 알아야했다. (소수찾는 법을 알아도 문제를 풀기가 힘들었다) 2. 풀이가 여러가지 방법이 존재한다. function solution(n) { const nArr = new Array(n).fill(1); nArr[0] = 0; for (let i = 2; i * i { for (let i = 2; i
한 주간 내가 뭘 배웠고(Learned) 어떤게 아쉬웠고 (Lacked) 어떤게 좋았는지(Liked) [Learned] 1. 오름차순 / 내림차순으로 정렬하는 법을 아주 많이 터득함. (너무 어렵다ㅠㅠ) 2. for 문 안에서 return 값을 반환시키려하면 안된다는 것.. (값을 항상 1개만 뱉어내는 이유였다.) 3. new Set()을 이용하면 동일한 값을 한개만 남기고 배열로 만들어줌 [Liked] 1. 이번주에 풀었던 문제들은 대체적으로 나에게 다 어려웠음.. 근데 더 다양하게 생각할 수 있는 기회인 것 같음 2. 팀원들의 풀이를 보면서 다양한 풀이를 접할 수 있는 것이 가장 좋은 것 같음 (짱짱) [Lacked] 1. 아직도 자바스크립트 기초가 부분부분 빵꾸뚫려있는 느낌임.. 부족하다고 느끼고 ..
[풀이] function solution(s) { const result = s.split("").sort().reverse().join(""); return result; } 1. 처음에는 전에 풀었던 오름차순 문제들처럼 어렵게 생각해서 노트에 이것저것 끄적여봤다. 2. 내림차순을 하기 위해서 arr.sort((a, b) => b - a); 를 사용해야하나 많은 고민을 했다. 3. 대문자가 소문자보다 작게 하는 것이므로 정규표현식을 이용해야하나 고민을 했다. 4. 갈수록 방향이 이상하게 잡히는 것 같아서 구글링을 해 글로된 풀이만 참고했다. 5. 저번 문제들에서 많이 사용했던 split()과 reverse(), join()을 이용하면 쉽게 풀리는 문제였다. [다른 팀원의 풀이] function solu..
[내가 푼 풀이] function solution(s) { if(!s.includes('-')){ s = Math.floor(Math.random() * 10000); return Number(s); } else { s = Math.floor(Math.random() * s.length); return Number(s); } } 그냥.. 바보다.. 너무 어렵게 생각했다.. 1. 부호를 포함했는지 안했는지에 따라서 이것저것 해보려고 했는데 어처피 "-1234"를 숫자형으로 변환하면 부호에 상관없이 그냥 -1234가 반환된다. 2. Math.random을 사용하면 정해진 값이 아닌 계속 변하는 값이 반환됨 +[리더님의 조언] 코딩테스트의 문제에서 Math.random은 거의 쓸 일이 없음 입력값과 결과값이 ..
[처음 푼 풀이] function solution(numbers) { for(let i = 0; i < 100; i++){ const randomNum1 = numbers[i]; const randomNum2 = numbers[i]; let newNum = []; newNum += (randomNum1 + randomNum2); const arrNum = newNum.split(); const result = arrNum.sort(); return result; } } 1. 여기서 랜덤한 수를 뽑기 위해서 randomNum을 1, 2 나눠서 변수로 담았음 2. 생각해보니 무작위로 뽑은 수를 모두 numbers[i]로 설정하면 같은 위치에 있는 것이 뽑힐 수도 있기 때문에 잘못되었음 3. 그래서 for 문..
[처음 푼 풀이] function solution(strings, n) { for (let i = 0; i < strings.length; i++) { let arr = []; arr += strings[n][i].split(); const result = arr.sort(); return result; } } 이번 문제는 생각하는데에 오랜 시간이 걸렸다. 인덱스값을 뽑아서 배열을 만들고 그에 일치하는 단어를 위치에 맞게 다시 정렬해야 하는데.. 생각이 복잡했다. 위의 풀이를 순서대로 풀자면, 1. arr 배열을 담을 변수를 만들고, 2. 빈 배열에 strings[n][i] 로 문자열을 반환받았다. 3. (2)번을 배열에 다시 담아주기 위해 split()을 이용했는데 → 이 때 드는 의문점 : split..
증감 연산자는 연산자가 어디 위치했는가에 따라 전위 연산자(prefix operator) 와 후위 연산자(postfix operator)로 구분됨 1. 후위 연산자 //postfix increment num++; - 연산자가 변수 뒤에 위치 [예시 코드] let x = 3; let y = x++; console.log(`x: ${x}, y: ${y}`); // x: 4, y: 3 나도 x: 3, y: 4가 출력 될 거라 생각함 (결과는 x: 4, y: 3) → 후위 연산자는 변수를 먼저 할당(대입) 후 연산을 수행하기 때문!! 따라서, 1. 먼저 x 를 y 에 대입 (x=3, y=3) 2. x 에 +1 증가 (x=4, y=3) let x = 3; let y; //이 때 y는 undefined y = x;..
블로그에 가장 처음 썼던 글이 var, let, const 의 차이점이었음 이번 프로그래머스 문제를 풀면서 for문에서도 변수를 let으로 선언해줘야 한다는 점을 깨달음 for문을 사용할 때 조건식 영역에서 var을 사용할 때와 let을 사용할 때 결과 값이 다르게 나옴 var, let, const 각각의 변수는 유효범위(scope)를 가지는데 var은 function scope, let은 block scope를 가짐 block scope인 변수는 블록 안에서 선언되면 블록 밖에서 참조 불가! (if문, for문 에서 보이는 대괄호{}가 블록임) //블록 안에서 선언, 블록 밖 참조 for (let i = 0; i < 10; i++){ let add1 = 1; } console.log(add1); //U..
hayeonn
Always Do it