
1. 문제 2. 문제 설명 배열에 담긴 숫자들을 가지고 + 혹은 -를 해서 target에 맞는 숫자를 만드는 경우를 반환한다. 3. 풀이 재귀함수를 이용한 DFS로 풀었는데 이 경우에는 BFS도 사용 가능하다고 본다. DFS함수를 만들어 처음시작할 인덱스와 숫자들을 가지고 있는 numbers와 target을 파라미터로 넘겨준다. 그리고 그것을 계산할 함수인 cal을 리턴값으로 주고 0부터 시작해 numbers에 있는 값들을 더하거나 뺀 경우의 수를 모두 더해본다. 그럼 빼거나 더하는 경우의 수가 다 이루어지게 되고 index와 numbers의 길이가 같게 되면 target과 비교하여 되는 경우의 수를 리턴값으로 보내준다. 하면서 return값을 함수로 주었을 때 파라미터의 초기값을 어떻게 줄지 난감했는데..

Promise와 async & await을 쓰는 이유 객체를 사용하기 전에 항상 이 객체나 함수를 왜 사용하는지를 알아야 다음에 이용할 때나 사용할 때 쓰임새에 맞게 사용할 수 있게 됩니다. promise 동기적으로 처리되는 자바스크립트에서 비동기로 연산을 처리할 때 사용하는데 이런식으로 콜백함수안에 콜백함수를 넣고 진행하는 콜백지옥이라는 것에서 벗어나기 위해서 사용하기 시작했습니다. 위의 식은 이런식으로 나오게 됩니다. 흐름을 처리하기 어렵게 된다는 점이 있습니다. async/await 비동기러리패턴의 최신문법으로 promise에서 콜백함수를 다루는 방법에서 비동기적 사고 방식을 벗어나게 도와줘 좀 더 동기적인 코드처럼 작성할 수 있게 도와줍니다. (반환 값을 변수에 할당) Promise 이유만 봤을 ..

저번에 이어서 쓴 글을 보는 기능과 글을 보고 나서 조회수가 오르는 기능을 구현해 보도록 하겠습니다. 어떻게 해야할지 갈피가 안잡혔었는데 찾아보던 와중에 주소창에 /content/:id 이런식으로 :(콜론)을 붙이면 req.params를 이용해 :id 값을 오브젝트 형태로 가져올 수 있었습니다. req.params의 로직을 보면 uri에 찍혀있는 :id값을 오브젝트로 가져와 params라는 오브젝트를 생성하는 것입니다. 그럼 받아오는 곳이 있어야하는데 저는 간단하게 게시판이 있는 home.ejs에서 제목의 부분을 a href를 이용해서 board_no로 정해주었습니다. 그래서 그걸 이용해 한 번 만들어보겠습니다. 보시면 idx라는 변수에 params 오브젝트의 id를 가져옵니다. 그리고 여기서 많이 헤맸..

match match()함수는 특정 문자열에서 검색 혹은 특정 문자를 찾기 위해서 사용합니다. 비슷한 함수로는 indexOf()가 있는데 indexOf()는 위치값을 인덱스로 반환하기 때문에 위치 확인할 때 사용합니다. 하지만 match()는 문자열이 존재한다면 그 문자열을 출력합니다. 여기서 match를 사용하는 방법은 2가지로 나뉘는데 하나는 문자열 하나는 정규표현식 입니다. 문자열 문자열 같은 경우는 특정 문자열이 있는지 검색할 때 사용하며 반환값은 배열로 이루어져 검색한 값과 그 값의 인덱스, 들어온 문자열, 정규표현식에서 사용하는 그룹으로 나누어져 있습니다. 아래의 예시에도 if문을 사용해서 존재한다면 실행시키는 방식으로 사용합니다. 여기서 검색한 문자열이 없다면 반환값으로 null를 반환합니다..

1. 문제 2. 문제 풀이 스킬을 배울 때 순서대로 배워야하는데 다 배우지 않아도 주어진 스킬트리에 맞게 되면 count가 올라가고 return값으로 최종 count값을 제출합니다. 여기서 주의할 점은 스킬트리에 없는 스킬만 배워도 count는 올라가야합니다. 왜냐하면 불가능한 스킬트리가 아니기 때문입니다. 3. 제가 푼 코드 스킬을 하나씩 가져와서 정규표현식으로 조건에 맞는 값을 찾는 match메서드를 이용 정규표현식이 아닌 객체를 사용하기 때문에 new RegExp안에 skill과 글로벌의 g를 넣어 이런식으로 나오게 합니다. 그리고 스킬트리에 없는 경우에는 null값이 나와서 while문을 이용해 continue로 생략해주었습니다. 그다음 skill의 처음부터 시작하고 그 값이 배열에서 문자열로 바..

1. 문제 2. 문제 해석 작업 진도를 가진 배열 progresses와 진도율을 가진 배열 speeds가 있다. 100프로가 넘으면 배포가 가능하지만 앞에 있는 순서대로 배포가 가능하다. 그래서 앞의 작업이 끝나야 같이 배포가 가능하고 같은 날에 배포되는 작업들의 갯수를 return값으로 보낸다. 3. 문제 풀이 처음엔 for문과 while문을 섞어서 풀었지만 시간이 많이 걸리는 것을 확인했고 시간복잡도가 생각났다. 그래서 다른 방법을 생각해보았다. 처음엔 shift가 pop보다 오래 걸린다는 생각을 가지고 안썻지만 이번엔 써보았다. speeds의 갯수대로 순서대로 작업을 진행한다. 그리고 100이 넘을 경우 progresses, speeds 배열의 앞을 삭제해준다. 그리고 count를 세어 총 횟수를 ..

ejs와 연결되는 js 파일 location.href 는 현재 화면을 입력한 페이지 주소로 바꾸는 기능입니다. location.href 파라미터만 쓰면 현재페이지를 확인할 수 있습니다. 1. text에 입력된 값들을 data 오브젝트에 저장합니다. 2. 아래 url로 들어가면 POST프로토콜로 JSON인코딩된 데이터를 보내는 방법이 있습니다. 그 방법을 이용해 body에 데이터를 넣어 보내었습니다. 3. then으로 결과값을 받아 값이 존재한다면 빈 오브젝트인 response의 값을 받아 성공인지 아닌지를 판단합니다. 4. 맞다면 사용자의 이름을 넣어 알림을 줍니다. developer.mozilla.org/ko/docs/Web/API/Fetch_API/Fetch%EC%9D%98_%EC%82%AC%EC%9..

ejs 파일들 라우터 역할 js 파일 보시면 output과 process로 나누었습니다. output은 보여지는 프런트 process는 데이터를 가공하는 기능을 합니다. output res파라미터를 받아 컴포넌트를 html로 바꾸어 브라우저에 나타나게 하는 render 메서드를 이용해 ejs파일과 연결해주었습니다. process 회원가입과 로그인할 때 db에 데이터를 입력하고 검색하는 기능을 해줍니다. req파라미터를 받아 각 js파일에서 던져준 body의 값을 저장합니다. body에는 사용자가 입력한 값이 저장되어있습니다. db.query는 첫번째인자는 sql명령어, 두번째 인자에는 배열로 된 값을 넣어줄 수 있습니다. process.signup 사용자가 입력한 값을 받아 insert문으로 데이터베이스..
- GROUP BY
- 회원가입
- nodejs
- smtp error
- 코드테스트
- sort
- 바이러스 dfs
- JOIN
- 토마토3차원
- Level 1
- 백준
- Express
- 카카오2018[1차]
- 로그인
- left join
- Replace
- slice
- SQL
- AWS
- 정규표현식
- 백준 7562 node
- tolowercase
- 숫자야구게임
- nodemailer error
- 534 error
- 코딩테스트
- Split
- JavaScript
- 프로그래머스
- 백준 7569 node
- Total
- Today
- Yesterday