본문 바로가기

전체 글

(177)
[연습문제][Lv.1] 약수의 합 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 정수의 약수는 정수이므로, n을 1부터 n까지 돌면서 나눈 값이 정수이면 answer에 더해주는 식으로 짰다. function solution(n) { let answer = 0; for (let i = 1; i 그런데, n/i*i = n 이라는 사실을 이용하면 계산 횟수를 줄일 수 있다. * 이때, 주의할 점은, 루트 n 값이 정수로 떨어지는 n의 경우, i = n/i 라는 사실. function solution(n) { let answer = 0; let sqrt = Math.sqrt(n); for (let i = 1; i
[연습문제] [Lv.1] 평균 구하기 문제 설명 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 내가 쓴 답 function solution(arr) { var answer = 0; for (let e of arr){ answer += e } answer = answer/arr.length return answer; } reduce를 이용해 좀 더 간결하게 쓰기 function solution(arr) { return arr.reduce((a, b) => a+b)/arr.length; }
[연습문제] [Lv.1] 짝수와 홀수 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 내가 쓴 답 function solution(num) { var answer = ''; if (num % 2 == 0){ answer = 'Even'; } else { answer = 'Odd' } return answer; } 위의 코드 블럭을 한 줄로 줄이면? function solution(num) { return num % 2 === 0 ? 'Even' : 'Odd'; } ternary operator 사용에 조금 더 익숙해져야겠다...
[20221111] 함수의 매개변수 오늘 배운 것 spread operator: function 함수이름 (...매개변수)를 통해, 요소의 나열만으로 함수 내에서 arry로 받아올 수 있음 function findMin(...arr) { console.log(arr); // [ 100, 40, 6, 2, 90, 180 ] let output = arr[0]; for (const item of arr) { if (output > item) { output = item; } } return console.log(output); // 2 } findMin(100, 40, 6, 2, 90, 180); // 아래는 앞의 숫자는 각각의 개별 매개변수로 받아오고, 나머지를 배열로 받아 옴 function findMin(a, b, ...arr) { co..
[20221110] recursion으로 merge sort 구현 Merge Sort는 배열을 하나의 요소가 개별 배열이 될때까지 쪼개고, 쪼개진 배열 두개씩 값을 비교하여 merge sort하는 알고리즘이다. [8, 7, 3, 2] [8, 7] [3, 2] [8] [7] [3] [2] [7, 8] [2, 3] [2, 3, 7 8] 아래 사이트를 참고하면 시각적인 이해를 돕는다. https://visualgo.net/en/sorting Sorting (Bubble, Selection, Insertion, Merge, Quick, Counting, Radix) - VisuAlgo VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only "payment"..
[20221110] 배열, for문 조건 속 논리 연산자 오늘 배운 것 array methods - splice(), filter() splice() : 특정 인덱스에 위치한 요소의 값을 삭제/추가 하는 메소드 -> 한번에 한개의 요소만 처리 filter() : to delete all the element that has the same property ( array.filter((item) => itme !=="property") 자료의 비파괴와 파괴 파괴적 처리 : 메모리 절약을 위해 자료 원본 자체에 변형을 일으키는 것 비파괴적 처리 : 원본 내용이 변경되지 않고 처리되는 것 for in / for of 두가지 반복문에 대한 차이 for in의 경우, 객체의 모든 열거 가능한 속성에 대해 반복 => 반복 변수(for(const 반복변수 of 배열/객체)..
[20221109] 숫자와 문자의 혼합형이 string 타입으로 저장되어 있을 때 숫자만 number로 변환하는 방법 오늘 시도한 것 숫자+문자로 이뤄진 string type을 숫자만 발라내어 number type으로 변환 오늘은 항해99 입학시험을 치뤘다. 문제는 간단했다. 기존에 만들어 놓은 사이트에 가격 컬럼을 추가하는 것이었다. 주문 할수 있는 평수는 10~50평 사이였고, db에 평수는 "00평"의 형태로 저장이 되고 있었다. 어차피 2자리 수자로만 저장이 되고 있었기 때문에, 빠르고 간단하게 구현하기 위해 평수 변수의 첫번째와 두번째 자리 값만 불러와 number로 변환해주었다. price = Number(size[0]+size[1])*500 이렇게 제출을하고 나서 문득, 만약 평수 정보의 자리수가 변경된다면 어떻게 처리할까? 하다가 split()을 이용하여 간단하게 고쳐주었다. price = Number(s..
[20221108] sourcetree로 git 사용하기 오늘 배운 것 git initializing : sourcetree에서는 newtab > create 버튼을 클릭해 프로젝트 폴더를 선택하면 자동으로 생성된다. add / staging : commit 전 어떤 작업 파일을 커밋할 것인지 선택하는 과정. 이때, 여러 파일을 작업했다면, 하나씩 선택하여 add / staging 할 수 있다. commit : 커밋을 할 때는 커밋한 날짜와 시간, 작업자, 작업 내용을 누구나 이해하기 쉬운 커밋 메시지를 포함한다. remote repository 생성 그리고 로컬 레포지토리와 연결 : sourcetree 설정을 눌러 원격 탭에 github repository 주소를 복사하여 붙여 넣는다. push : local repository에서 커밋한 작업물을 remot..