
자료구조 & 알고리즘 특강 (강창민 튜터님) 스택 LIFO(Last In First Out)의 성격을 가진 선형 자료구조 반복문에서 종료 조건을 지정하지 않거나 잘못된 종료조건을 지정하여 무한 루프가 발생하면 메모리의 스택영역이 쌓이고 쌓이다 터짐 → StackOverflow 역순의 성질을 사용해야될 때 유용한 구조 대표적인 기능: 픽(peek), 푸시(push), 팝(pop) 큐 FIFO(First In First Out)의 성격을 가진 선형 자료구조 대표적인 기능: 픽(peek), 삽입(enqueue), 뽑기(dequeue) 버블 정렬 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (n-1)번째 자료와 n번째 자료를 비교하여 교환하면서 자료..
자료구조 & 알고리즘 특강 (강창민 튜터님) 시간복잡도 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다. 컴퓨터과학에서 알고리즘의 시간복잡도는 입력을 나타내는 문자열 길이의 함수로서 작동하는 알고리즘을 취해 시간을 정량화하는 것이다. (출처: 위키피디아) 프로그램의 수행 성능을 최악의 경우를 가정하여 정량화하는 방법으로 고안한 알고리즘이 정말로 유용한지 판단하는 좋은 기준이 된다. Big-O(빅오) 표기법으로 표시(ex O(1), O(N), O(N²))하며, N의 지수부분만이 유효하게 쓰이고 나머지(계수와 상수)는 절삭한다. 공간복잡도 문제를 해결하는데에 대한 공간과의 상관관계를 가리킨다. 최적화가 덜 되어있다고 해도 당장은 프로그램을 돌리는 컴퓨팅 리소스의 성능을 올리면 해결..
자료구조 & 알고리즘 특강 (강창민 튜터님) 알고리즘의 정의 어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합. 여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다. [표준국어대사전] 인상깊었던 문제 (예제 3) 1. 입력으로 소문자의 알파벳 순으로 정렬된 문자열이 입력됩니다. 2. 각 알파벳은 중복이 가능합니다. 3. 중간에 없는 알파벳이 있을 수도 있습니다. 입,출력 예시와 같이 입력 문자열에 나타나는 각 알파벳의 종류,갯수를 요약하여 나타내시오. # 문제의 번호별 조건에 대한 입력 예시와 출력 Ex 1) abc # a1/b1/c1 Ex 2-1) aaabbbc # a3/b3/c1 Ex 2-2) abbbc # a1/b..

자료구조 알고리즘 원격 강의 진도 나가기 시간복잡도와 공간복잡도 시간복잡도: 입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계 공간복잡도: 입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계 *상수나 계수는 무시할 정도이며, 차수가 가장 중요함 *공간복잡도를 희생해서라도 시간복잡도를 낮추는 것이 베스트 점근표기법 빅오(Big-O): 최악의 성능이 나올 때의 연산량 표기 ex) O(N) 빅오메가(Big-Ω): 최선의 성능이 나올 때의 연산량 표기 ex) Ω(1) * 최악의 경우를 대비해야 하므로 알고리즘 분석은 빅오 표기법 위주로! Array vs Linkedlist *Python의 경우: []로 감싸는 list 자료형이 array로 만들어졌으나, 동적 배열이라는 것을 이용하여 배열의 길이가 늘어나도..

파이썬 문법 뽀개기 원격 강의 진도 나가기 파이썬으로 알고리즘 공부를 하고 있었기 때문에 완전 생소한 내용은 아니었지만, 알고 있던 것은 복습하고 새로운 것은 집중해서 공부하는 시간을 가졌다. for문에서 enumerate()의 활용 fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지'] for i, fruit in enumerate(fruits): print(i,fruit) 이처럼 for문을 돌릴때 enumerate()를 이용해서 index를 받아올 수 있고, 이를 다양한 방식으로 활용할 수 있다. f-string 알고 있는 개념이지만 너무 자주 쓰이기 때문에 정리하였다. 아래의 예시처럼 문자열 안에 변수를 넣고 싶을 때 사용하면 된..
The four Fs FACTS 첫 프로젝트 수행 프로세스, 스레드, 비동기 특강 수강 꾸준히 알고리즘 문제풀이 연습 FEELINGS 개발자 공부를 시작한 이후의 첫 팀 프로젝트를 무사히 마쳤다. 처음 시작할 때는 걱정이 참 많았는데, 너무 좋은 팀원들을 만나서 개발 실력면에서도, 협업 면에서도 많은 성장을 이루었다. 팀 프로젝트에 대한 막연한 두려움이 완전히 사라진 것 같고, 앞으로 더 많은 프로젝트를 하게 될 것에 너무너무 설렌다. FINDINGS HTML로 웹페이지의 뼈대를 만들고, CSS를 통해 꾸미는 기본적인 과정을 익힘: 특히, Bootstrap의 다양한 기능(ex. 그리드 시스템)과 CSS에서 media query를 활용한 것이 기억에 남는다. 웹 프레임워크인 flask를 이용하여 웹서버를 ..

첫 프로젝트 마무리와 발표 일주일간 진행된 첫 프로젝트를 마무리하고 같은 반 사람들과 모여 발표하는 시간을 가졌다. 다른 조들의 결과물들을 보니 참신한 컨센들도 많이 있었고, 생각지도 못한 여러 배울점도 많았다. 튜터님이 가장 많이 조언해주신 부분은 수정과 삭제 기능을 구현할 때 db에 저장된 id값을 이용해보라고 한 것이었다. 대부분의 조에서 게시글에 번호를 매기는 방식을 사용하였는데, 이미 할당된 고유의 id값이 있으니 그것을 활용하는 것이 좋다는 것이다. 그것 외에도 가장 크게 느낀 것은 하루 빨리 git을 활용해보고 싶다는 것이었다. 이미 사용해서 프로젝트를 수행한 팀들도 있었고 아닌 팀들(우리팀 포함)도 많았지만 다들 git을 사용하는 것이 얼마나 중요한지를 느낀 것 같다. 또, 다음 프로젝트 ..

팀 프로젝트 수행 어느새 발표일이 하루 앞으로 다가왔다. 오전 중으로는 내가 짠 코드를 팀원분들께 보여주고 설명하는 시간을 가졌다. 설명을 하면서 조금은 나도 이해가 되기도 했고, 뭘 더 추가하면 좋을지 생각할 수 있었던 것 같다. 일단 기본적인 CRUD가 구현은 되었고, 오늘은 좀 더 나은 방법이 있는지 찾아보거나 비밀번호 기능을 수정 및 삭제 기능에 활용하고, 날씨 위젯 같은 기능을 메인페이지에 추가해보고자 했다. 그리고 저녁이후로는 모두의 개인 페이지를 메인페이지와 연결하고 발표 구상을 했다. position: fixed; html 요소의 position속성을 fixed로 지정해주면 화면에서 고정된 위치를 가지는 것을 볼 수 있다. 이 때문에 스크롤을 하면 따라오는 것 같은 느낌을 줄 수 있게 된다..

팀 프로젝트 수행 계속해서 팀프로젝트를 수행해 나가는데, 팀원 한분이 우리가 너무 프론트엔드에 몰두하고 있는 것 같다는 좋은 지적을 해주셨다. 그에 따라 빨리 초점을 백엔드로 맞춰서 각자 할 수 있는 부분을 빠르게 끝내고, 새로운 기능을 추가해보고자 했다. flask를 이용하여 기존에 알고 있었던 post, get 메서드를 넘어서 put, delete 메서드를 이용한 데이터의 수정 및 삭제, 그리고 post할 때의 시간을 기록하는 기능까지를 목표로 설정하였다. JS에서 현재 시간을 얻을 수 있는 함수 JS에는 기본적으로 현재 시간을 얻기 위해 내장된 함수가 존재하며, 다양한 메서드가 있기 때문에 원하는 조건에 따른 메서드를 찾아서 사용하면 된다. 아래는 몇몇의 예시이다. See the Pen Untitl..

팀 프로젝트 진행 각자의 개인 소개 페이지를 먼저 만들어보기로 하였다. 각자 필수내용 및 자신이 넣고 싶은 내용을 넣어 개성있게 만들면서 색(스파르타 페이지의 시그니처 색), max-width, 전체적인 틀은 동일하게 하였다. 만드는 과정에서 백엔드 부분은 기존에 배운 것 이상의 내용은 필요하지 않았으며, 오히려 프론트 엔드 부분에 대한 공부가 필요했다. 특히 요소들을 배치하는 과정이 생각보다 어려웠으며, 이를 위해 부트스트랩의 그리드 시스템과 미디어 쿼리에 대해 공부했다. Clipboard API 클립보드와 상호작용하기 위해 기존에는 execCommand 메서드가 사용되었으나 신기능으로 인해 점차 사용되지 않고 있다. 그 신기능은 바로 Clipboard API이다. Clipboard API - Web ..
- Total
- Today
- Yesterday
- Wil
- 17103
- 4134
- 2053
- 13909
- 25192
- 24723
- 코육대
- 20920
- 5597
- 2738
- 2587
- 26069
- 벡준
- 24060
- MySQL
- programmer
- SQL
- 1269
- 24313
- 백준
- 2903
- Python
- til
- 25501
- 10807
- 항해 플러스
- 13241
- 항해+
- Programmers
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |