전체 글48 array 내장 함수를 통해 findShortestWord 문제 해결하기 문제: 배열을 입력받아 배열에서 가장 짧은 길이를 가진 문자열 요소를 리턴 입력: arr _ 임의의 요소가 담긴 배열 출력: string 타입을 리턴해야 합니다. 주의 사항 반복문(for, while) 사용은 금지됩니다. 같은 길이의 요소가 있다면 배열의 앞쪽에 있는 요소를 리턴해야 합니다. 배열에는 문자열 외에 다른 요소들이 있을 수 있습니다. 빈 배열을 입력받은 경우, 빈 문자열을 리턴해야 합니다. 주어진 배열에 문자열이 없는 경우, 빈 문자열을 리턴해야 합니다. 입출력 예시 let output = findShortestWord([4, 'two', 2, 'three']); console.log(output); // --> 'two' 문제 풀이 설명 [4, 'two', 2, 'three']로 arr가 .. 2021. 2. 23. filter, map을 이용한 코드를 reduce로 refactoring하기 다음과 같은 문제가 주어졌다고 생각해 보자. let arr = [1,2,3,4,5]; function filter() { const filterMapped = arr.filter(x => x % 2 !== 0).map(x => x*2); return filterMapped; } filter();// [2, 6, 10] filter함수는 filter와 map을 사용해서 주어진 arr에 홀수 중인 것에 2를 곱한 값을 리턴한다. 이것을 구현하기 전에 먼저 arrow function(화살표 함수)가 익숙하지 않아서 mdn 등 문서를 통해 화살표 함수의 기능을 익히는 시간을 가졌다. 화살표 함수는 익명 함수로 function 표현을 사용하지 않으니 구문이 짧아져 많이 편했다. 계속 화살표 함수를 사용해 봐야 겠.. 2021. 2. 22. underbar shuffle 메소드 shuffle을 사전에 찾아보니 다음과 같이 정의하고 있다. rearrange (a deck of cards) by sliding the cards over each other quickly. 즉 카드를 다른 카드 위에 섞으면서 재정렬하는 것이다. _shuffle 은 배열 요소의 순서가 랜덤하게 변경된 새로운 배열을 리턴한다. 예를 들면 음악이나 비디오를 재생할 때 랜덤으로 재생할 때 사용할 수 있다. 본격적인 shuffle 메소드 코드를 작성하기 전에 먼저 정리할 것이 있다. Math. random() Math.random() 함수는 0 ~ 1 사이 부동수숫점 의사난수를 반환한다. 즉 0에서 0.9999...까지 랜덤한 수를 생성한다. 정수인 난수를 생성하고 싶다면 수를 내림하는 Math.floor의 .. 2021. 2. 22. [코드스테이츠 졸업생 토크 세션 참여 후기] SW 과정 Full IM23 김폴빈 강의 오늘 코드스테이츠에서 졸업생 김폴빈님께서 80:20 법칙이라는 제목으로 세션 토크를 진행하셨다. 김폴빈님은 '모인'에 최근에 취업하신 분이다. 강의 중에서 개인적으로 중요한 포인트를 정리해 본다. 1. 20%에 집중하라 80대 20 파레토 법칙이 있다. 전체 결과의 80%는 20%에서 일어난다는 것이다. 결국 20%에만 집중적으로 몰입하면 80%의 결과를 뽑아낼 수 있다. 내가 선택한 한 분야에 깊게 집중하라. 현업에 비전공자는 많지 않다. 한 분야에 깊이있게 팠다는 것을 증명할 수 있다면 회사가 비전공자라고 할지라도 관심을 가질 것이다. 프로젝트할 때도 마찬가지이다. 우리는 모든 것을 다 잘하기 쉽지 않다. 특히 프론트엔드 개발자가 되기를 꿈꾼다면 멋있어 보이는 것, 재미있는 기능이 있는 프로젝트를 해.. 2021. 2. 19. [코드스테이츠 4주 Pre 과정 회고] 그동안 공부한 내용들과 개선할 점 정리 오늘 드디어 코드스테이츠 소프트웨어 엔지니어링 pre 4주 과정이 모두 끝났다. 그동안 배운 것들과 내가 부족한 것과 개선할 점들을 정리해 본다. 이 과정은 javascript 언어(node.js)를 주로 사용하면서 프론트엔드와 백엔드 개발자로 성장하는데 필요한 것들을 배우는 과정이다. 코드스테이츠 홈페이지에 소개된 간단한 소프트웨어 엔지니어링 커리큘럼은 다음과 같다. 개발자에게 꼭 필요한 기술들 특히 협업에 필요한 기술 등을 자기주도학습과 페어 프로그램, 그리고 온라인으로 효과적으로 배울 수 있는 좋은 개발 부트캠프라고 생각한다. 지방에 살고 있는 나에게 코드스테이츠는 개발자가 되기 위한 기회의 한 줄기 빛이 되었다. 4주간 공부한 내용들 정리 1주차: * Javascript의 기본인 변수, 타입, 함.. 2021. 2. 19. github에서 clone하여 자료 다운받고, add, commit, push하는 법 코드스테이츠에서 과제를 제출할 때 github에서 과제 자료를 clone하고 코드를 작성하여 add, commit, push로 과제를 제출한다. 매번 과제를 할 때마다 관련 영상을 보고 하느라 시간이 많이 지체되어 이번에 github에서 자료를 clone하고 다시 github에 올리는 방법을 정리하기 위해 포스팅해본다. 1. git이 컴퓨터에 설치되어 있는지 확인한다. 확인하는 방법은 MacOS에서 터미널 혹은 Visual Studio Code의 터미널 창을 연다(메뉴의 터미널 - 새 터미널). git --version git version 2.24.3 (Apple Git-128) git 명령어 git --version을 입력하고 엔터를 치면 버전이 나오면 git이 설치된 것이다. 2. github에서 .. 2021. 2. 15. 재귀함수를 통해 Tower of Hanoi (하노이의 탑)문제 해결해보자 재귀함수를 연습할 수 있는 좋은 예가 바로 하노이의 탑(Tower of Hanoi)문제이다. 하노이의 탑이란 전세계에서 인기 있는 수학 게임이다. source, extra, destination의 3개의 Peg가 있다. source에 각각 크기가 다른 n개의 디스크가 있어 이 3개의 peg중 어느 하나에나 삽입할 수 있다. 우리가 해야 할 일은 바로 source의 모든 peg를 destination으로 옮기는 것이다. 제한 사항은 첫째. 한 번에 하나의 디스크만 이동할 수 있다. 둘째. 더 큰 디스크를 작은 디스크 위에 올릴 수 없다. 해답을 말씀드리기 전에 먼저 아래는 연습할 수 있는 사이트에서 한번 시도해 보시기 바랍니다. 만만치 않을 것입니다. www.transum.org/Maths/Investig.. 2021. 2. 11. 재귀함수(Recursion Function) 재귀(Recursion)란 무엇인가? 함수를 스스로 호출하는 것으로 어떤 문제를 해결할 때 구조는 동일하지만 더 작은 경우를 해결함으로써 그 문제를 해결하는 방법이 재귀이다. 재귀는 어떤 경우에 사용하면 좋은가? 1) 주어진 문제가 구조는 비슷하고 더 작은 문제로 나뉘어 질 수 없는 경우 2) 중첩된 루프가 많은 경우 3) 중첩의 정도를 미리 알 수 없는 경우 재귀의 장점과 단점 장점: 프로그램의 가독성이 좋다. 단점: 호출마다 call stack이 새로 생성되어 메모리를 많이 사용한다. 호출 stack이 너무 커져서 메모리를 엄청나게 소비할 수 있다. 재귀함수를 만드려면 base case와 recursive case로 나누어야 한다. 재귀함수는 자기 자신을 호출하기 때문에 호출 stack이 커져 메모리.. 2021. 2. 11. [코드스테이츠 Software Engineering Pre 과정] 3주차 공부내용: 고차함수 코드[코드스테이츠 Software Engineering Pre 과정] 3주 차 공부 내용: 고차함수, 알고리즘, DOM, Twittler 작성이다. 오늘 배운 주제 2월 1일과 2일, 이틀에 걸쳐 고차함수와 알고리즘 베이직을 배우고 코딩 테스트 문제(Cotlin)을 풀었다. * 일급 객체(first-class citizen) JavaScript에서 함수는 일급 객체이다. 왜냐하면 3가지 특별하게 취급하기 때문이다. 1) 함수는 변수에 할당(assignment)할 수 있다. 2) 다른 함수의 인자(argument)로 전달될 수 있다. 3) 다른 함수의 결과로 리턴될 수 있다. * 고차함수(higher order function) : 함수를 인자로 받거나 함수를 리턴하는 함수를 고차함수라고 한다. * 콜백함.. 2021. 2. 4. 코드스테이츠(CodeStates) 후기 공유회에서 배운 것들을 정리해 본다. 오늘 코드스테이츠 수료자 두 분이 후기 공유회를 하였다. 기대하는 마음으로 저녁을 후딱 먹고 컴퓨터 화면 앞에 앉았다. 후기 공유회는 zoom으로 강의를 하는 것이기에 엔지니어 분께서 공유한 링크를 클릭해서 참여했다. 강사는 두 분이었다. 한 분은 오늘 취업한 남자 분이고, 한 분은 취업준비 중인 여자분이었다. 앞으로 코드스테이츠에서 내가 어떻게 공부하고 취업을 준비할 것인지 정말 많은 도움을 받았다. 강의를 들으면서 도움받은 것들을 정리해 본다. 1. UrClass 를 잘 정리해두라. 두 분의 공통점은 코드스테이츠 학습 플랫폼인 UrClass 학습내용을 잘 정리하면서 소화하면서 공부한 점이다. 다른 곳에 집중하지 않고 기본 교육과정에 충실하였다. UrClass에 다루는 영상과 script 내용들은 코드.. 2021. 1. 30. 이전 1 2 3 4 5 다음