Programming 59

[알고리즘] 탐색(순차, 이진, 이진 트리, 힙)

순차 탐색 탐색 과정 1. 원하는 값이 나올 때 까지 index를 증가시킨다. 2. 원하는 값을 찾으면 탐색을 중단한다. 시간 복잡도 평균 비교 횟수: (n+1)/2 최악 비교 횟수: n 시간 복잡도: O(n) 특징 1. 단순하다. (장점) 2. 비효율적이다. (단점) 이진 탐색 탐색 과정 0. 탐색할 배열이 오름차순(내림차순) 정렬이 되어있어야 한다. 1. 배열의 길이의 중간에 있는 값을 선택하여 탐색 하고자하는 값과 비교한다. 2. 해당 값이 탐색 하고자하는 값보다 크다면 우측으로, 작다면 좌측으로 이동하고 원하는 값을 탐색 할 때 까지 1-2번 과정을 반복한다. 더 이상 이동할 수 없어도(탐색할 후보군이 없어도) 탐색을 종료한다. 시간 복잡도 비교를 진행할 때마다 탐색 후보군이 절반으로 줄어든다. ..

Programming 2022.05.17

[알고리즘] 정렬(선택, 삽입, 퀵, 계수)

선택 정렬 (필자는 '최소값 정렬'이란 이름도 직관적이라 생각한다.) 정렬 과정 1. 주어진 리스트 중 가장 작은 값을 탐색한다. 2. 첫 번째 원소와 해당 값을 교체한다(exchange) 3. 첫 번째 원소를 제외하고 1~2를 반복한다. 하나의 원소가 남으면 종료한다. 시간 복잡도 n개의 리스트 중 최소값을 찾는 연산은 n-1번의 비교 연산이 필요. 선택 정렬을 진행하면서 비교해야할 원소가 1개씩 줄어들기 때문에 연산 횟수는 (n-1) + (n-2) + ... + 2 + 1= ((n-1)*n/2) = O(n^2) 특징 1. 자료 이동 횟수가 미리 결정된다. 2. 안정성을 만족하지 않는다. (같은 값에 대해 순서가 바뀔 수 있음.) 삽입 정렬 (필자는 '카드 정렬'이란 이름도 직관적이라 생각한다.) 정렬..

Programming 2022.05.10

[WEB] Virtual DOM이란?

현재 프론트 엔드 시장의 리더는? 프론트엔드 프레임워크(라이브러리) 시장은 react.js와 vue.js가 양분하는 형태로 변화하고 있다. 사장되고있는 angular는 정말로 더 이상 사용되지 않는 모습을 볼 수 있다. npm에서 살펴본 주간 다운로드수. react가 압도적으로 높고, 그 다음 vue가 따른다. angular와 svelte는 생각보다 더 다운로드 수가 적다. 확실히 react의 점유율이 압도적인 모습을 볼 수 있다. 요즘 떠오르는 svelte도 아직은 점유율이 매우 낮다. vue와 react는 분명히 다르지만, vue가 react의 개념을 많이 차용한 것이 사실이고, 이는 vue3의 composition api의 도입으로 react에게 한 발짝 더 가까워졌다. 이런 vue와 react가 ..

Programming/Web 2022.03.27

[Flutter] ConstrainedBox를 사용하여 SingleChildScrollView full Height 채우기

SingleChildScrollView( child: ConstrainedBox( constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height), child: Column( children: [ Expanded( child: GridView.count( crossAxisCount: 2, children: List.generate(some.length, (index) { return Container( child: some(index), ); }), ), ), ], ), ), ); 1. SingleChildScrollView를 지정하고 바로 GridView를 사용하면 height가 지정되지 않아서 화면이 그려지지 않는다. 2. 에러 문..

Programming/Flutter 2022.03.17

[Flutter] image full width 채우기

ClipRRect( borderRadius: BorderRadius.circular(8), child: Image( width: 1000, image: AssetImage('assets/image/announcement-test.png'), fit: BoxFit.fitWidth, ), ), 1. ClipRRect: BoderRadius를 주려면 ClipRect가 아니라 ClipRRect를 써야한다(...) 2. Image에는 fit 이 존재한다. 3. Image width를 매우 큰값을 주고, BoxFit으로 제한을 걸어주면, container(바깥 위젯)에 맞춰서 영역을 잡게된다.

Programming/Flutter 2022.03.17

[Python] 실수하기 좋은 파이썬 문법들

코딩테스트를 준비하다, 파이썬의 까다로운 문법들을 만나서 정리한다. 1. False == 0 은 True이다. (True, False는 1, 0과 거의 비슷하게 간주된다.) True * 3 > 3 False * 3 > 0 위의 내용보다 중요한 것은 if 0: print('hi') > if 1: print('hi') > hi 0과 1이 조건식안에 들어갔을 때, False, True처럼 행동한다는 것. 그리고 가장 헷갈리는 것은 if 0 == False: print('hi') > hi if 0 is False: print('hi') > 0 == False도 True이다. 이를 비교하려면 is를 써야한다. 2. python은 작은 숫자들에 대해서 어느정도 캐싱을 한다. https://stackoverflow...

Programming 2022.03.05

[React] styled-component(css-in-js)에서 transition 효과

styled-component에 state를 넣어서 작성하면 해당 컴포넌트가 re-render되버려서 transition을 확인할 수 없다. 하지만 style 객체를 따로 만들어서 inline style로 넣으면 작동한다. 하지만 이렇게 해도 styledComponent 내부에 객체를 생성하면 또 re-render가 일어난다. 그리고 다음과 같은 warning을 볼 수 있다. 그래서 function(component) 내부에서 선언된 styledComponent를 모두 밖으로 꺼내고 변수를 props로 받으니 더이상 re-render가 일어나지 않는다. 주의할 점은, transition을 적용할 부모 객체중 하나라도 function(component) 내부에서 선언된다면 re-render가 일어나니, 모..

Programming/React 2022.02.10

[Web, Nginx] "data url(base64 encoded) image" vs "image file" 그리고 nginx gzip

현 상황 집에 서버를 구축했기 때문에, 만들어 둔 블로그를 서버에 올리고 계속해서 다듬고 있다. 서버는 잘 올라갔는데 페이지 로딩 속도가 너무 느려서 무슨 일인가 보니.. 🐌 인터넷 속도가 너무 느리다... 대충 초당 1MB 밖에 안된다. 그래서 공유기를 거치지 않고 인터넷을 연결하니 초당 10MB는 나오더라(다행). 어쨌든 이 문제는 공유기를 교체하기로 했고, 공유기가 도착하기 전까지 사이트 성능이나 튜닝하기로 했다. 초당 1MB라니, 이렇게 좋은 실험 환경이 어디 있는가! 그래서 튜닝할 부분은? 블로그를 만들 때 계속해서 걱정하던 부분이 있는데, 바로 포스트에 들어갈 이미지였다. 이미지를 파일로 저장해서 url로 serving 하고 싶었지만, 현재 사용하고 있는 quill-editor로는 이를 편하게..

Programming/Web 2022.02.03

python-yeelight response error, Bulb closed the connection. 발생시

File "/home-light-_QDhjiKn-py3.8/lib/python3.8/site-packages/yeelight/main.py", line 344, in _command cmd = self.send_command( File "/home/jun/.cache/pypoetry/virtualenvs/home-light-_QDhjiKn-py3.8/lib/python3.8/site-packages/yeelight/main.py", line 814, in send_command raise BulbException(response["error"]) yeelight.main.BulbException: Bulb closed the connection. 위와 같은 에러가 발생해서, 어쩔 수 없는 문제인가보다....

Programming 2022.02.02