일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 궁금증
- 코딩
- 14502
- 코딩일기
- 16918
- Backend
- BOJ
- 직접연결하면안되는이유
- Sequelize
- 코딩감수성
- LIS
- 프로그래밍
- 우아한테크캠프
- AWS
- db
- 수업내용정리
- 문제
- JS
- DB관계
- 백준
- 오토마타정의
- 알고리즘
- 프론트엔드
- 14002
- Beakjoon
- 가장긴증가하는부분수열
- nuxt
- EC2
- 오토마타
- 우테캠4기
- Today
- Total
목록전체 글 (14)
모든 경험을 소중하게
보호되어 있는 글입니다.
이번에 우아한테크캠프를 준비하면서 이런 저런 블로그부터 지인들에게 받은 질문들을 정리해보기로 했습니다. 제가 나중에 참고하고자 작성하는 글이니 반말로 작성한 점은 이해해주시면 감사하겠습니다. 1. var, let, const var, let, const 에 대해 설명하기 위해서는 var 의 hoisting 에 대해서 먼저 얘기하는 것이 중요하다. hoisting 문제로 인해 let 이 도입되었으나, var 를 없애기에는 기존의 너무나도 많은 사이트들이 var 를 사용하고 있다. 따라서 var 를 없애는 선택보다는 유지한 채로 let 을 도입하게 되었다. /* let */ console.log(a); // ReferenceError: a is not defined let a = 1; console.log(..
첫 프론트 엔드 개발을 위해 공부한 내용을 정리하는 글입니다. 따라서 정리가 안되어 있을 수 있고, 틀린 내용이 있을 수 있습니다.댓글 달아주시면 계속 수정해 나가겠습니다. SPA SPA 는 Single Page Application(이하 SPA) 의 약자입니다. 말 그대로 한 개의 페이지를 가진 애플리케이션을 의미하고, SPA 를 사용하는 이유를 통해 SPA 를 설명하고자 합니다. SPA 를 사용하는 이유 사용자에게 친화적입니다 새로운 데이터를 얻기 위해 페이지를 새로고침 하는 것이 필요한 부분만 갱신할 수 있습니다. 초기 렌더링 후 데이터만 받아오기 때문에, 상대적으로 서버 요청이 적습니다. Server Side Rendering(이하 SSR) 처럼 새로운 페이지에 접속하기 위해 HTML, js 파일..

이번 포스트에서 다뤄볼 문제는 Beakjoon online judge 사이트에 있는 14002번 문제 '가장 긴 증가하는 부분 수열 4' 이다. 이 문제는 LIS 로 알려진 유명한 문제이다. 이 문제를 풀기 위해 이용한 알고리즘은 DP 이다. 물론, 2중 for 문을 이용해서 전체를 계속 순회해도 문제를 풀 수 있다. 특히 이 문제에서는 크기가 1000 이므로, O(n^2) 이다. 따라서 충분히 시간 내에 풀 수 있다. 하지만 DP 를 이용한다면, O(n) 으로 계산 할 수 있다. DP 문제는 다들 많이 풀어보는 유형이라 방법은 알고 있겠지만, 모르는 분들에게 도움이 되고자 설명한다. dp 배열을 수열 길이만큼 잡은 후, 0 으로 초기화 해준다. 여기서 C 언어를 사용하고 있다면, 전역변수로 선언하면 0..

이번 포스트에서 다뤄볼 문제는 Beakjoon online judge 사이트에 있는 14502번 문제 연구소 이다. 우선 시간 제한이 2초이므로, 그렇게 빡빡하지는 않다고 생각할 수 있었다. 문제를 마저 더 읽어보자. 새로 세울 수 있는 벽은 꼭 3개이다. 벽이 세워질 수 있는 곳은 0 값을 가지고 있는 좌표들뿐이다. 그렇다면, 어떻게 3개를 선택해야 가장 많은 0 을 남길 수 있을까? 문제를 마저 더 읽어보자. 우선, 벽을 세운 후, 2인 점들을 queue 에 넣은 후, BFS 를 돌아야 안전 영역 ( 0 ) 의 크기가 몇일지 알 수 있는 것 같다. 따라서, 모든 벽 3개를 다 세워봐야만 안전 영역의 크기를 알 수 있다고 판단이 든다. 그렇다면, 0 을 가진 좌표 중 3개를 선택해야 하므로, 0의 갯수..

이번 포스트에서 다뤄볼 문제는 Beakjoon online judge 사이트에 있는 13335번 문제 트럭을 풀어볼 예정이다. 밑에 글을 읽기에 앞서, 문제를 풀 때, 트럭 대신 버스라는 변수를 사용했다. 밑의 설명 또한 그렇게 진행하고자 한다. 오해 없길 바랍니다. 문제 레벨과 대충 훑어본 느낌으로는 매우 쉬운 문제였다. 문제를 보자마자 생각난 방법은 하나 있다. 1. 버스 라는 구조체를 만든다. 2. 그 구조체에서 다리를 구간별로 나눠서, 현재 버스가 다리 위에 어느 위치인지 기억하는 변수를 저장한다. 하지만, 이렇게 한다면, 매 초마다 각 버스의 위치를 1씩 증가 시켜줘야 한다. 즉, 시간 복잡도 면에서 n^2 이므로, 비효율적이다. 다른 방법을 생각해야만 했다. 우선, 아래의 입력과 출력 예제를 ..

오늘 풀어본 문제는 Beakjoon online judge 사이트에 있는 16918번 문제 봄버맨을 풀어보았다. 일단 손으로 직접 테스트 케이스를 가지고 진행해보았다. 주어진 테스트 케이스는 다음과 같다. 6 7 3 . . . . . . . . . . O . . . . . . . O . . . . . . . . . O O . . . . . O O . . . . . 앞으로는 ' . ' 을 쓰면 보기 어려워서 'X' 를 쓰도록 하겠다. time(N) 1 2 3 4 5 map[][] XXXXXXX XXXOXXX XXXXOXX XXXXXXX OOXXXXX OOXXXXX OOOOOOO OOOOOOO OOOOOOO OOOOOOO OOOOOOO OOOOOOO OOOXOOO OOXXXOO OOOXXXO XXOOXOO ..

대부분의 어플, 웹사이트는 같은 방식으로 통신하고 있다. 만약 서버의 역할이 거의 없다면, 서버를 제외하여 프론트와 DB를 직접 연결하면 안되는 걸까? 우선, 프론트와 DB 를 직접 연결하는게 가능할까? 👉🏻정답은 가능하다. 하지만, 주변에서 개발한다는 사람들과 많은 프로젝트 코드를 봤을 때, 클라이언트와 DB를 직접 연결하는 경우를 보지 못했다. 왜 그럴까? 서버의 역할이 없다면 그렇게 하면 안되는 것일까? 그 이유는 다음과 같다. 1. 클라이언트의 코드는 난독화등 보안을 위해 몇가지 처리가 되지만, 소스 코드를 볼 수 있다. 따라서 DB 와 통신하기 위해 필요한 DB username, id, pw 등의 정보가 필요한데, 이러한 중요한 정보가 외부로 노출될 수 있기 때문이다. 2. 클라이언트와 DB가 ..
일반 문법 for(let i = 0; i < n; i++) for( value of array or string) for( index in array or string) switch(value) { case 1: case 2: statment; break; case 3: default: } Array method arr.pop() // 배열 뒷부분 값을 삭제 후 반환 * 빈 배열일시 undefined 반환기존배열변경 arr.push(value); 배열의 끝에 하나이사의 요소를 추가하고, 배열의 길이를 반환기존배열변경 arr.unshift(value); // 배열 앞부분에 값을 삽입, 배열의 길이를 반환기존배열변경 arr.shift(); //배열 앞부분의 값을 삭제 * 빈 배열일시 undefined..
보호되어 있는 글입니다.