일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MySQL
- 후기
- DP
- nodeJS
- 리사이클러뷰
- 몰입캠프
- 타입스크립트
- html
- node.js
- 우선순위큐
- 카이스트맛집
- 안드로이드스튜디오
- BFS
- 알고리즘
- 위상정렬
- 프래그먼트
- computergraphics
- 자바
- 궁동
- 백준
- 어은동맛집
- 분리집합
- 카이스트
- glfw
- 앱개발
- 대전맛집
- 프로그래머스
- 몰입캠프후기
- 컴퓨터그래픽스
- 자바스크립트
- Today
- Total
목록분류 전체보기 (73)
소근소근
백준 11053 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 어떤 수열이 주어졌을 때, 가장 긴 증가하는 부분수열의 길이를 출력하는 문제이다. dp[N] 배열을 선언하고, dp[N]에는 N번째 수를 마지막 원소를 갖는 가장 긴 증가하는 부분수열(lis)의 길이를 저장한다. O(N^2)으로 푼다. 이중 포문을 돌면서, 현재 수보다 1 작..
백준 내려가기 gold 4 https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net N*3 배열이 주어지고, 위에서부터 인접한 위치로 내려가며, 최댓값과 최솟값을 출력하는 문제이다. 평범한 dp로 풀면 될 것 같다. 그런데.. 메모리 제한이 4MB이다. 즉, 일반적으로 생각하는 dp배열을 만들어서 푸는 풀이는 메모리 초과가 나게 된다. sliding window기법을 사용한다. 전체 배열 크기만큼 dp배열을 만드는 게 아니라 실질적으로 필요한 데이터만 저장할 수 있게..
한동안 알고리즘에 손을 대지 못하다가 최근 다시 백준을 풀기 시작했다.. 백준을 풀다 보면 수많은 런타임 에러, 틀렸습니다, 시간 초과를 보게 된다. 내 코드를 보면서 아니 대체 왜? 맞는데? 예외처리 다 했는데 맞왜틀??!?! 을 정말 많이 외쳤었다. 하지만 컴퓨터는 거짓말을 하지 않지.. 내가 무조건 잘못한게 맞다 ^^ 그래서 오랜만에 알고리즘 공부를 하기 전에 알고리즘 풀 때 마주치는 에러에 대해 내가 보기 위해 정리하기로 했다. 1. 컴파일 에러(compile error) 보통 비주얼 스튜디오에서 예제 코드를 돌려보고 내기 때문에 주로 마주치는 에러는 아니다. 코드에 쓴 함수나 자료구조를 사용하기 위해 필요한 헤더를 모두 선언 해 주었는지 확인해보자. 그래서 보통 알고리즘을 풀때 자주 쓰는 헤더를..
기본적으로 자바스크립트는 단일 스레드이며 동기적(synchronous)이다. 동기적이라는 것은 어떠한 작업이 실행되고 있다면 다른 작업은 멈춘 상태에서 기다리는 것을 말한다. 비동기 동작 비동기적으로 동작하는 것도 필요하다. 비동기적이라는 것은 어떠한 요청을 보내고 이 요청이 처리되는 것을 끝날때까지 기다리는 것이 아니라 바로 다음 작업이 실행되는 것을 말한다. console.log('Hello'); setTimeout(function hi(){ console.log('async'); },3000); console.log('Bye'); 먼저 , console.log('Hello')가 실행이 되고, 콜 스택에 쌓였다가 콘솔에 Hello가 출력된다. 출력 후에는 스택에서 사라지고 , 스택에는 setTimeo..
자바스크립트는 'synchronous' 하고, 'non-blocking' 하다 싱글 스레드 기반이고, 콜백 큐를 사용한다. 자바스크립트의 대표적인 엔진으로는 크롬 브라우저의 V8 엔진이 있다. 엔진의 구성요소로 두가지는 메모리 힙 (Memory Heap) : 메모리 할당이 이루어진다. 콜 스택 (Call Stack) : 코드가 실행됨에 따라 호출 스택이 쌓이는 곳 자바스크립트 엔진 외에도 관여하는 다른 요소로는 DOM 이나 timeout같은 WEB API가 있다. 자바스크립트가 기본적으로 synchronous한데, asynchronous하게 동작하도록 Timeout을 이용할 수 있다. (ex setTimeout) 싱글 스레드 기반은 멀티 스레드 환경에서 고려해야 하는 복잡한 문제( ex : deadloc..
자바스크립트에서 = 로 객체를 복사하려고 하면 복사가 되지 않고 '참조' 를 하게 된다. 즉 값을 복사하는 것이 아니라 원래 객체의 주소값을 가리키게 된다. 객체의 참조 복사(shallow cloning) let obj = { a : 'a', b : 'b', c : 'c' }; let notclone = obj; obj.c = 'changed'; console.log(obj); console.log(notclone); 콘솔 출력 > {a: 'a', b: 'b', c: 'changed'} > {a: 'a', b: 'b', c: 'changed'} notclone = obj 으로 notclone은 obj의 주소값을 가리키게 된다. 그렇기 때문에 obj의 내용을 바꾸면 notclone에도 반영이 된다. 객체의..
div 와 span태그는 웹 페이지에서 영역을 지정할 때 사용하는 태그이다. div1 div2 span1 span2 div의 경우 자동으로 줄바꿈이 되지만 span은 한 줄에 같이 나오는 것을 볼 수 있다. 이유는 div의 경우 block 속성, span은 inline 속성을 갖기 때문이다. 이러한 특성을 사용해서 한 줄만 디자인을 바꾼다거나 할 수 있다.
First Name: Last Name: Email : Password : Birthday : Gender : Male Female Pets : Cat Dog Cars : KIA BMW form 의 method의 default 는 GET방식이므로, 데이터를 입력하고 submit하면 url에 name과 value 값을 확인할 수 있다. file:///C:/Users/~?firstname=test&lastname=test&email=test%40gmail.com&password=fewfwefewfw&birthday=2021-08-03&gender=Female&cat=on&cars=BMW