일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- grpahQL
- 연습
- DOM
- vscode
- this
- 코딩
- method
- ftech
- 알고리즘
- 리액트
- 개발
- 클라이언트
- 일상
- nqueens
- Instantiation Patterns
- 공부
- 취업
- JS
- react
- underbar
- 포스기
- underscores
- 제일어려워
- 초보
- 엔퀸즈
- JavaScript
- array
- 자바스크립트
- 해커톤
- 코드스테이츠
- Today
- Total
목록알고리즘 (7)
analogcoding
Toy 40번 문제. 200p 만들기 1p piece 2p piece 5p piece 10p piece 20p piece 50p piece £1 (100p) £2 (200p) 로 200p 를 만들 수 있는 경우의 수를 모두 구하는 문제. 구현 실패. graphQL 에서 JWT 를 미들웨어로 사용하는 부분을 해결했다. graphQL 에서 middleware 분기를 하면서 생긴 문제점은 먼저 restful 과 차이점에 있다. restful API 의 경우 특정 endpoint 마다 선택적으로 middleware 를 흘려줄 수 있었지만 graphQL 은 하나의 endpoint 만이 존재한다. 이 문제에 대해서 2가지의 해결방안이 나왔다. 첫번 째는 미들웨어에 배열에 resolver 를 담아주는 방법. 이 방법..
Toy 02번 문제. 문자열이 주어지면 중복되지 않는 유니크한 문자열이 있으면 리턴하고 아니면 null을 리턴. 특정한 문자열의 위치(index)를 반환한다. 시작 기준점이 달라도 하나라면 같은 인덱스에 위치하고 있을 것이므로 indexOf , lastIndexOf 로 해결했다. 스프린트 & 피어 리뷰 이번 스프린트에서 가장 큰 목적을 크게 나열해보자면 1. Class 를 이용한 상속 - 상속받은 기능 외 추가 기능 구현하기. ---> 성공하긴 했다. 다른 기능을 추가하고 기존 기능을 가져오고까지는 성공. 2. 상속받은 메소드를 이용해서 기능 구현하기. ---> 받은 메소드를 활용해서 다른 기능을 구현하는데 어느 것은 성공하고 어느 것은 실패하고.. 반쯤 성공. 3. css 여러 효과 사용해보기. ---..
재귀적으로 해결해보기. 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을 문자열로 바꾼 뒤 나눠서 각 자릿수를 곱한 값을 인자로 재귀함수로 만들어..
문제. 인자로 받는 문자열의 숫자가 2의 제곱수면 true를 아닐 경우 false를 리턴. Ex) input : 2 , 4 , 8 , 16 , 32 , 64 , 128 ... => output : true input : 1 , 22 , 27 , 222 ... => output : false 해결방안. 1. input값을 숫자로 받기. 2. for문을 사용해서 input을 2의 i ( i는 input보다 작게 ) 제곱과 비교. 3. Boolean 값 리턴. iput을 숫자로 변환하고 i 번 제곱할 i 를 설정해준다. var powerOfTwo = function(str) { var num = Number(str); // 숫자로 변환 for(let i = 1 ; i < num ; i++){ // input이..
문제. 인자로 받는 문자열의 알파벳을 알파벳의 고유 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..