정렬 알고리즘(Sorting Algorithm) 선형 구조 2중 for문으로 구현 버블 정렬(Bubble Sort) 서로 인접한 2개의 원소를 비교해 정렬하는 알고리즘(크기가 순서대로 되어있지 않으면 서로 교환) def bubbleSort(): arr = [3, 4, 2, 5, 1] for i in range(0, len(arr)): for j in range(0, len(arr)-1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] print(arr) bubbleSort() 구현이 매우 간단함 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서 배열에서 모든 요소들과 교환됨 시간 복잡도 O(n^2) 2. 선택 정렬(Select..
728x90
반응형
전체 글
자료구조(Data Structure) 1. 문자열 둘 이상의 결합된 문자 불변성 : 기존 객체의 값을 바꾸는 것이 아닌 수정된 값을 가진 객체를 생성 문자열 끝에는 널 문자(종단문자, '\n') 반드시 들어감 없다면 출력시 쓰레기값이 같이 출력됨 2. 배열 연속된 메모리 공간에 순차적으로 저장된 데이터 모음 작업 average case worst case 접근(read) O(1) O(1) 삽입 및 추가(insert) O(n) O(n) 삭제(delete) O(n) O(n) 조회(search) O(n) O(n) 동일한 데이터 유형을 가짐 각 요소에 접근하는 시간은 O(1) => 인덱스로 바로 접근 가능 연속된 메모리에 단일 블록화하여 데이터 저장(낭비되는 공간이 적음) 삽입 및 삭제시 모든 요소를 움직여줘야..
배열(Array) 변수 : 한 개의 데이터를 저장하는 공간 배열 : 여러 개의 데이터를 저장하는 공간 방번호(index) : 0번방부터 n-1번방까지 존재함(배열 선언시 설정한 크기(n)) { // 배열 선언 int arr[5]; /* int : 배열에 담긴 데이터의 자료형 arr : 배열 이름 [5] : 데이터의 크기(5개의 데이터를 담을 수 있음) */ // 데이터 주입(초기화) arr[0] = 1; arr[1] = 2; arr[2] = 3; // 배열 초기화 int arr[5] = {1,2,3} /* 데이터 주입과 동일한 내용 배열의 크기는 5개인데 3개만 초기화를 해줬기 떄문에 arr[3], arr[4]에는 쓰레기 값이 담겨있음 !! 초기화를 해주지 않으면 쓰레기 값이 담김 !! */ } 배열의 ..
더보기 일기 오늘은 0주차 최종 발표가 있는 날이다. 비교적 아침 일찍 일어나서 부랴부랴 몸을 이끌고 강의실에 도착했다. 강의실 도착해서 어제 구현한 서비스를 바탕으로 발표자와 함께 최종발표 자료를 준비를 했다. 그러던 중 팀원의 의견으로 유저 프로필 변경하는 기능을 넣게 됐다. 발표시간이 그리 여유롭게 남지 않아서 걱정이 되긴 했지만 팀원분들이 역량이 뛰어났기 때문에 세 명이서 역할 분담해서 무사히 구현을 할 수 있었다. AWS EC2에 배포를 하고 같은 반분들에게 받은 데이터를 서버에서 건드리다가 실수로 프로필 이미지 데이터가 모두 삭제되는 사고가 생겼다. 방법 찾던 중 해결이 안되서, 아까 구현한 프로필 이미지 변경 기능을 이용해 복구할 수 있었다. 구현해놓기 잘했다.(낙타님 감사합니다) 약 3박 ..
지나온 과거에 대한 성찰 지나와 과거를 살펴보면 나는 내 자신을 남들에게 많이 숨기고 좋든 싫든 남들에게 맞추고 살았던 것 같다. 다른 사람과의 관계가 틀어지는 것이 싫었거나 두려웠던 것 같다. 내가 그냥 피해를 보고 말지라는 생각으로 매번 회피하면서 지냈다. 가끔은 내가 굳이 왜 피해를 보면서 살아야 하나 싶어서 성격을 바꿔보려고 했지만, 사람 성격이 쉽게 바뀌지는 않는다. 나는 겁 많고 지레 먼저 걱정하는 성격이다. 더군다나 걱정은 하는데 그에 따른 행동은 하지 않고 합리화만 했던 것 같다. 5개월 동안 얻어가고 싶은 것 5개월이란 기간이 길다고 생각하지 않는다. 지금 벌써 4일째 공부를 하고 있는데, 시간이 정말 빠르게 흐른다. 이번에는 CS(Computer Science) 기초지식 뿐만 아니라 내..
사실 TIL을 처음 써 보는거라 어떤 내용을 작성해야 할지는 모르겠다. 글을 잘 쓰는 편이 아니라 매일 조금이라도 뭐가 됐던 작성을 해야 실력이 늘것같다. Rendering(렌더링) 개발자가 작성한 코드를 웹 브라우저를 통해 사용자가 상호작용을 할 수 있는 인테페이스로 표현하는 과정 어떠한 방법으로 렌더링 하는지에 따라 웹페이지 반응 속도에 영향을 주고 사용자 경험에 큰 영향을 줌 렌더링 방식 : CSR(클라이언트 사이드 렌더링), SSR(서버 사이드 렌더링), SSG(스태틱 사이트 제너레이션) CSR(클라이언트 사이드 렌더링) 사용자 웹페이지 주소로 접속하면 서버가 실제 웹페이지의 콘테츠가 아닌, 그 콘텐츠가 렌더링 될 껍데기만 보냄(ex. html..) 먼저 껍데기만 렌더링한 뒤, Javascript..
잠자리가 생각보다 나쁘지 않아서 잠도 개운하게 잔 편인듯 하다. 아침에 일어나서 준비하고 프로젝트 기획발표가 있어서 강의실로 이동했다. 기획발표 준비자료를 마무리하고 올라가서 동료분이 발표를 진행했다. 다른 팀에게 생각보다 강한 피드백을 하셔서 무섭긴 했지만, 다행히 우리팀은 무난하게 잘 지나갔다. 본 강의실로 내려와서 오늘은 어제 못다한 로직 작성과, 프론트(View) 작업을 진행했다. 지금 Mongodb를 채택해서 사용중인데 Mongodb는 RDBMS 관계지향적인 데이터베이스가 아니어서 고생을 좀 했다. 처음 생각한 것은 User가 다른 User의 첫인상을 남기는 로직이었는데, User의 Id를 Fk(외래키)로 삼아서 Comment라는 테이블을 생성하는 걸로 생각을 했다. 하지만 Mongodb는 딕셔..
728x90
반응형