목록분류 전체보기 (57)
대학생 쩡딱구리
1. 배열이란? 2020년 수능 시험에 548,734명이 지원했다고 한다. 이런 상황에서 54만명의 성적을 처리하려면 데이터를 어떻게 관리하는 것이 좋을까? 학생 개개인마다 변수를 선언해 자료를 관리하는 것은 불편할 것이다. 이런 문제점을 해결하는 자료구조 중 배열이 있다. 배열이란 동일한 타입의 데이터를 연속된 메모리 공간에 저장하여 하나의 변수로 표현하는 자료 구조를 말한다. 그렇다면 배열이 갖는 장점은 무엇일까? 배열은 각 요소의 길이가 같기 때문에 어떤 요소라도 바로 접근할 수 있다. 예를 들어, 배열에서 index i의 주소 = [배열의 시작 주소] + [요소의 크기] * i로, O(1)의 시간 복잡도를 가질 것이다. 또한, 배열에선 data[4]와 같은 추상화된 형태로 각 요소를 접근하게 만듦..
1. 시간 복잡도 분석 1. 알고리즘 분석 0. 알고리즘과 자료 구조 1. 알고리즘이란? "유튜브 알고리즘이 나를 꽤 괜찮은 곳으로 데리고 왔다." 2PM의 '우리 집' 유튜브 영상에 달린 베스트 댓글 중 하나다. 이 예시와 같 jjeongttakgoori.tistory.com 시간 복잡도의 개념에 대한 이해가 있어야 이번 게시글을 보기 편하다. 1. Big-O 표기법 Big-O 표기법(Big-O Notation)은 시간 복잡도와 공간 복잡도의 점근적 상한이다. Big-O 표기법에 대해서는 아래의 공식이 성립한다. 아래의 공식에서 n은 입력의 크기, f(n)은 알고리즘에서 실행되는 기본 연산의 횟수, g(n)은 기준 함수이다. O(g(n)) = {f(n): there is positive constant..
1. 알고리즘 분석 0. 알고리즘과 자료 구조 1. 알고리즘이란? "유튜브 알고리즘이 나를 꽤 괜찮은 곳으로 데리고 왔다." 2PM의 '우리 집' 유튜브 영상에 달린 베스트 댓글 중 하나다. 이 예시와 같이 우리는 알게 �� jjeongttakgoori.tistory.com 이번 게시글도 저번 게시글에서 이어진다. 1. 시간 복잡도 시간 복잡도(Time Complexity)란 연산의 실행 횟수를 입력 크기 n에 대한 함수로 표기한 것을 말한다. 알고리즘 내에서 실행되는 기본 연산의 횟수라고도 볼 수 있는 시간 복잡도는 T(n)(n은 입력의 크기)으로 표시한다. 알고리즘에서 시간 복잡도를 분석하기 위해서는 몇 가지 가정을 해야 한다. 1. 알고리즘은 가상 컴퓨터에서 가상 언어로 작성되어야 한다. - 가상 ..
0. 알고리즘과 자료 구조 1. 알고리즘이란? "유튜브 알고리즘이 나를 꽤 괜찮은 곳으로 데리고 왔다." 2PM의 '우리 집' 유튜브 영상에 달린 베스트 댓글 중 하나다. 이 예시와 같이 우리는 알게 모르게 알고리즘이라는 말 jjeongttakgoori.tistory.com 알고리즘이 무엇인지에 대해서는 위 글을 참고하면 좋을 것 같다. 1. 좋은 알고리즘이란? 정의하고자 하는 문제와 자료구조에 따라 알고리즘은 천차만별이다. 그렇다면 좋은 알고리즘이란 어떤 알고리즘일까? 좋은 알고리즘이란 1) 빠르게 실행되면서 2) 적은 공간을 사용하는 알고리즘이다. 두 가지가 알고리즘의 효율성을 결정하는데, 둘 중 우선순위를 고르자면 시간적인 요소가 더 중요하다. 2. 실험 분석 위에서 우리는 같은 내용의 알고리즘일 ..
'러시아의 대문호가 누구냐?'는 질문이 있다면 빠짐없이 등장하는 인물로 푸시킨(Александр Сергеевич Пушкин)이 있을 것이다. 오늘 문학텍스트수업 예습 차 읽은 는 푸시킨의 유명한 단편집인 중 한 단편소설이다. 1. 책 제목의 의미: 역참지기 역참과 역참지기 우리나라에 역참이 있었다. 역참이란 고대에서 전근대까지 있었던 동아시아에 있었던 시설로, 나라에 필요한 문서, 물자를 운송하는 기점, 그리고 관리들에게 말을 빌려주는 시설을 말한다. 물론, 작품의 배경은 동아시아의 나라가 아니라 러시아이지만, 러시아에도 이와 같은 시설이 있었다. 러시아의 역참과 역참지기는 어땠는지 소설 맨 앞 부분을 보자. 역참지기는 누구인가? 고난을 겪는 14등급의 사람이다. 그의 임무는 무엇인가? 중노동이다. ..
지난 글에서 계속된다. 0. 알고리즘과 자료 구조 1. 알고리즘이란? "유튜브 알고리즘이 나를 꽤 괜찮은 곳으로 데리고 왔다." 2PM의 '우리 집' 유튜브 영상에 달린 베스트 댓글 중 하나다. 이 예시와 같이 우리는 알게 모르게 알고리즘이라는 말 jjeongttakgoori.tistory.com 1. 파이썬의 built-in 데이터 타입 파이썬은 연산의 특성을 고려한 자료구조로 구성되어 있다! 자세한 것은 아래의 표를 참고하면 될 것 같다. 구분 이름 클래스 설명 불변성질 (Immutable) Basic Data Types 부울 bool 부울 값(Boolean) O 정수 int 정수(Integer) O 실수 float 실수(float-point number) O Sequence Types 리스트 lis..
1. 알고리즘이란? "유튜브 알고리즘이 나를 꽤 괜찮은 곳으로 데리고 왔다." 2PM의 '우리 집' 유튜브 영상에 달린 베스트 댓글 중 하나다. 이 예시와 같이 우리는 알게 모르게 알고리즘이라는 말을 접한다. 용어를 접하진 않더라도 우리가 검색을 하거나 유튜브나 넷플릭스에서 어떤 영상에 노출되는 것 역시 알고리즘에 의한 것이다. 알고리즘(Algorithm)이란 어떤 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것이다. 위의 순서도를 보면 입력(Input)과 출력(Output) 사이 입력한 내용을 일정한 절차에 의해 출력물로 만드는 것이 알고리즘(Algorithm)임을 알 수 있다. 알고리즘은 잘 정의된 계산 문제를 풀기 위한 도구라고도 볼 수 있는데 이 계산 문제를 풀기 위한..
이중전공인 융복합소프트웨어 2학기 전공 필수 과목은 자료구조이다. 자료구조(Data Structure)란 컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장의 과정이자 데이터에 적용할 수 있는 함수나 명령을 의미한다고 한다. 오늘부터 진도별로 나간 자료구조 내용과 코드를 첨부할까 한다. 큐시즘 세션 복습도 할 겸 Github에 업로드해도 되지만 직접 블로그를 쓰는 건 또 다른 느낌일 것이라 생각한다. 데이터가 있으면 내년에 알고리즘 배울 때도 도움이 될 테고 코드를 다시 복습하는 과정이 시험에 도움이 될 수도 있으니까. 내가 과제로 짠 코드는 자유롭게 가져가도 좋지만 다음의 두 가지 조건을 알아두었으면 좋겠다. 자료구조 게시물의 코드는 파이썬을 베이스로 한다. 과제로서 통과..