일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코딩
- Instantiation Patterns
- 취업
- array
- 해커톤
- DOM
- underbar
- 포스기
- 연습
- 초보
- underscores
- 제일어려워
- 일상
- JS
- ftech
- JavaScript
- method
- this
- 코드스테이츠
- vscode
- 개발
- 클라이언트
- grpahQL
- 알고리즘
- 엔퀸즈
- nqueens
- react
- 공부
- 자바스크립트
- 리액트
- Today
- Total
목록코딩 (23)
analogcoding
재귀적으로 해결해보기. sumDigits 함수는 input으로 숫자를 받고 받은 숫자의 각 자릿수의 합을 리턴한다. 음수를 받는 경우 맨 앞 자릿수는 음수로 계산한다. Ex) input : 1148 => output : 14 (1+1+4+8) input : -316 => output : 4 (-3+1+6) 해결방안. 1. input 숫자를 양수, 음수에 따라 조건을 나눔. 2. 각 자릿수에 접근하기 위해 문자열로 변경. 3. 한 자릿수 양수,음수의 경우 바로 input을 리턴. 4. 양수의 경우 각 자릿수의 값을 reduce를 사용해 누적 값을 리턴. 5. 음수의 경우 - 제거 후 다른 요소에서 첫요소를 뺀 값을 다시 재귀적으로 실행. ㄴ 또 음수가 나올 경우 한 자릿수가 된다면 1. 으로 , 양수가 나..
문제. 인자로 받는 숫자의 각 자릿수를 반복적으로 곱해서 한자리수로 만들 때까지의 곱한 수를 리턴. Ex) 39 => 3. ㄴ 한자리 수가 될 때까지 반복 곱셈 : 3 * 9 = 27 => 2 * 7 = 14 => 1 * 4 = 4 . 총 3번 곱셈. 해결방안. 1-1. input num을 문자열로 바꾼 뒤 나눠서 각 자릿수를 곱할 수 있게 만듬. 1-2. 한자리수가 될 때까지 곱하는 조건을 while문으로 주고 곱할 때마다 카운트해서 카운트를 리턴. 2-1. 값이 0인 카운트를 전역변수로 생성. 2-2. input 숫자 num의 자릿수가 한 자리수라면 그대로 카운트를 리턴. 2-3. 아니라면 카운트++ 2-4. input num을 문자열로 바꾼 뒤 나눠서 각 자릿수를 곱한 값을 인자로 재귀함수로 만들어..
문제. 인자로 받는 문자열의 알파벳을 알파벳의 고유 index로 리턴. Ex) input : "The sunset sets at twelve o' clock." => output : "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11" 해결방안. 1. 대소문자 구분 없이 작동하게 만들기. 2. 알파벳의 고유 index를 찾기 위해 알파벳 배열 만들기. 3. 문자열을 각 요소로 만들어 배열로 담기. 4. 특수문자나 공백 걸러내기. 5. iput으로 오는 배열의 요소를 알파벳 배열에 indexOf를 사용해서 index 찾기. 6. 다시 문자열로 리턴. 먼저 함수를 생성하고 input의 값을 소문자로 통일하고 각 배열로 나눠준다. ..
문제. 인자로 받는 문자열의 값이 연속된 홀수일 경우 홀수와 홀수 사이에 '-'를 입력한 후 리턴. Ex) input : '454793' => output : '4547-9-3' 해결방안. 1. 문자열을 하나씩 분리해서 배열에 각 요소를 담음. 2. 값이 홀수인지 확인. 3. 연속된 문자열 또한 홀수일시 '-' 추가. 4. 다시 배열을 문자열로 합침. 먼저 문자열을 인자로 받는 함수를 만들어준다. var DashInsert = function(str){ } 문자열을 분리해서 배열로 만들고 for문과 if문으로 값이 홀수인지 확인. str = str.split('') for(let i = 0; i < str.length; i++){ if(Number(str[i])%2!==0 && Number(str[i+1..
과제 발표 당일 발표 전까지 약 2시간 정도 여유시간이 있었다. 미처 수정하지 못한 코드나 오류를 수정하고 우리는 마지막으로 객체에 새 메뉴를 추가하면 메뉴 버튼이 자동적으로 생성되고 그 버튼 역시 기존 버튼과 똑같이 작동하게 만드는 것을 구현하기로 했다. 기존 버튼들 모두 메뉴이름과 가격이 적혀 있었는데 그 값 역시 객체에서 받아오고 객체에 수에 따라서 반복문을 이용해 모든 객체의 요소를 불러올 수 있게 설정하고 마무리 지었다. function makeMenu() { for(let i = 0; i < coffees.length; i++){ let makeMenuBtn = document.createElement('button'); makeMenuBtn.setAttribute('id' , coffees[..
그렇게 다시 일상으로 돌아와 수업과 함께 짬날 때마다 조금씩 진행이 되어가고 우리는 다시 뭉쳐서 지금까지의 진행 결과를 합쳤다. 참고로 우리 조 이름은 .. 그랑조였다. 물론 내 맘대로 그냥 지어버린 이름이지만 각자 역할을 맡고 합체시키는 게 마치 로봇 그랑죠 처럼.. 이라고 되지도 않는 핑곗거리가 하나 있다. (이런 느낌으로 조 이름을 지은거임) 다시 본론으로 돌아와서 포스기의 작동원리를 생각하면서 코드를 작성하면서 부딪힌 문제들이 꽤나 있었다. 먼저 수량이 증가하면 기존 div 밑에 동일한 메뉴가 주문창에 담겼다. 메뉴의 중복이 가장 먼저 극복해야할 문제였고 다른 우리 조의 가장 큰 문제는 메뉴 하나 당 함수가 엄청나게 길었다. 처음에 설계할 때 메뉴를 변수로 두지 않은 채 코드를 작성해서 메뉴 하나..
학원에서 함께 공부하는 동기분들과 3인 1조로 조를 꾸려서 함께 포스기를 만들어보는 작은 과제를 진행했다. 처음엔 "뭐야 쉽겠는데? 덧셈만 있는거잖아" 라고 생각했지만.. 아주 큰 오산이었다.. 간단하게만 보았던 진행 주제를 막상 백지에서 맞닥뜨리니 호락호락하지 않았다. javascript만으로도 벅찬 상태였지만 기본적인 html , css 지식조차 없던 나에게는 DOM 역시 큰 시련이었지만 훌륭한 동기분들을 믿고 과제를 시작했다. 정확히 전부를 기억하지는 않지만 조가 정해지고 시작된 건 설계와 목업 작업이었다. 여기서 목업이란? 우리는 먼저 어느 부분에 메뉴가 들어갈지 , 가격이 들어갈지 기본적인 틀을 잡으면서 화면을 간단하게 선으로 나누면서 이런 모습의 첫 화면을 완성했다. 왼쪽에는 메뉴가 오른쪽에는..