본문 바로가기

분류 전체보기182

방송대 자료구조 교재 요약 제3 장 - 스택 제3 장 스택) 개관)스택은 '입출력 순서'를 자료들 간의 관계로 표현하는 자료구조다.스택은 입력이 가장 늦게 된 자료가 가장 먼저 출력되는 관계를 표현한다.그래서 왔던 길을 되돌아가야 하는 미로찾기나 깊이 우선 탐색에 많이 사용되고,예전에 처리했던 값을 역순으로 되돌아가며 찾아내서 처리해야 하는 후위식의 계산에 많이 사용된다.사칙연산에도 주로 사용한다.더보기내가 여기까지 정리하면서 확신이 드는 게 방송대 교재는 실물로, 꼭 사는 게 좋은 거 같다.편입학 초기에는 책을 꼭 사야 하나, 실물 책을 사느냐 eBook을 사느냐 같은 고민을 많이 하는데실물 책을 사야 편하게 형광펜 등으로 체크도 하고, 필기도 하면서 여러 번 볼 수 있다.방송대 컴퓨터과학과 교재 중 기본 CS와 관련 있는 책은 다회독 해도 절대.. 2024. 4. 29.
방송대 자료구조 교재 요약 제2 장 - 배열 2장 개관을 읽는데 모든 줄이 킬링 포인트라서 내가 차마 여기에 다 옮기지를 못 하고 있다.옮기자면 분량이 너무 많고 저작권도 신경 쓰인다.정광식 교수님의 강의를 만족하며 들었기 때문에 더욱 그렇다. 제2 장 배열) 개관)희소행렬이란? 원소값이 0인 원소가 그렇지 않은 원소보다 상대적으로 많은 행렬을 희소행렬이라 한다.위 2차원 배열의 모든 행과 열을 다 메모리에 올리면 공간 낭비가 심하다.그래서 값이 0이 아닌 것만 행,열,값 형태로 정리한다. 1. 배열의 정의배열은 인덱스 순으로 표현되는 메모리 영역이다.배열의 원소는 모두 같은 자료형으로 각자 해당 자료형의 값과 같은 크기의 기억 공간을 갖는다.배열의 각 원소의 메모리 주소의 순서가 배열의 인덱스의 순서와 일치해 첫 번째 원소가 위치하는 메모리 주소.. 2024. 4. 29.
방송대 자료구조 교재 요약 제1 장 - 강태원·정광식 공저 더보기개인 공부를 위해 진행한 요약입니다.자료구조에 대해 알고 싶은 분은방송대에서 자료구조 강의를 사거나(단돈 15,000원) 교재(eBook이면 단돈 11,000원, 구판은 실물 도서인데 9,400원(내용 차이 거의 없음))를 구입하는 것을 권장합니다.둘 다 퀄리티가 나쁘지 않습니다.정말 좋다고 말하지 않는 건, 시중 자료구조 책을 많이 보지 않아 비교대조군이 부족하기 때문.머리말)프로그램은 자료구조를 조합해서 만든다. 그래서 프로그램을 효율적으로 만들고 싶다면 자료구조를 알아야 한다.대학 학부과정에서 반드시 알아야 하는 자료구조는 다음과 같다.1. 자료구조의 의미와 개념, 자료구조의 가장 중심 개념인 추상화2. 프로그래밍 언어에서 기본적으로 제공하거나 정의하여 사용하는 자료구조와 그것들을 여러 개 붙.. 2024. 4. 29.
2024년도 방송대 컴퓨터과학과 기말시험 대비를 실시한다 자료구조알고리즘디지털논리회로인공지능C프로그래밍Java프로그래밍순으로 기말시험 대비 정리를 실시한다. 자료구조는 2학기 수업으로, 1학기에 들을 수 없어서 내가 따로 돈 주고(단독 15,000원!!!) 들었다.파이썬프로그래밍기초는 쉬워서 정리 안 할 거다. 2024. 4. 28.
자바 디자인패턴 시리즈를 시작하며 https://www.youtube.com/watch?v=mE3qTp1TEbg&list=PLlsmxlJgn1HJpa28yHzkBmUY-Ty71ZUGc 이 시리즈를 보고 정리할 것이다.한 번 싹 정리할 기회가 필요했는데 지금이 딱 그 때 같다. 1. 모든 내용을 상세히 정리하지 않습니다.내 학습이 우선이기 때문이다.나는 그냥 모르는 거 GPT한테 물어가면서 한 번에 싹 정리하면 끝이다.지금 남들에게 가르치기 위해서 포스팅 하는 것이 아니다. 2. 패턴은 총 22개를 정리합니다. Java에서 사용되는 다양한 디자인 패턴은 대체로 소프트웨어 개발에서 일반적으로 채택되는 패턴들을 포함합니다. 이들은 특정 문제를 해결하기 위한 검증된 솔루션을 제공하며, 크게 세 가지 범주로 분류할 수 있습니다: 생성 패턴(Cre.. 2024. 4. 28.
부록: 자바에서 자료구조랑 연관 있는 인터페이스들 나는 자바로 코테를 풀기 위해 반드시 알아야 하는 기본적인 인터페이스와 클래스만 언급했다.내가 말하지 않은 것들이 몇몇 있다.나중에 그것에 대해 또 언급할 기회가 있을지 없을지 모르기 때문에 필요하면 혼자서 더 공부하길 바라는 마음에서여기에 관련 인터페이스를 언급한다.주요 컬렉션 인터페이스Collection: 모든 컬렉션 클래스의 기본 인터페이스.List: 순서가 있는 컬렉션을 다루기 위한 인터페이스. 중복을 허용합니다.Set: 중복을 허용하지 않는 컬렉션을 다루기 위한 인터페이스.SortedSet: 정렬된 순서로 요소를 저장하는 세트.NavigableSet: SortedSet을 확장하여 탐색 가능한 기능을 제공합니다.Queue: 특정 순서로 요소를 처리하기 위한 컬렉션 인터페이스 (보통 FIFO).De.. 2024. 4. 28.
자바 자료구조 총 정리를 마치며 1. 미흡하다. 하지만 쓸모 없지 않다.설명이 부족한 부분도 있고 빼 먹은 메서드도 좀 될 거 같다.하지만 절대 정리해 놓은 게 쓸모 없다고 생각하지 않는다.왜냐면, 저 정도 알면 머릿속에 웬만큼 자바 자료구조 정리는 다 되기 때문이다. 2. 완벽은 없다.내가 개발을 자바로 시작하지 않은 이유는 자바 생태계가 너~무 방대해서 어디서부터 어떻게 시작할지를 모르겠어서였다.그랬던 게 어떻게 된 일인지 지금 이러고 있는데 중요한 건,완벽은 없다.한낱 개인의 블로그에서 글 몇 개 읽고 '자바 자료구조의 모든 것'을 알아갈 순 없다.다만, 모든 글을 읽었다면 geeksforgeeks 등지에서 필요한 부분을 쏙 쏙 빠르게 잘 써먹게는 될 것이다.자바 자료구조에서 언급된 내용 중 더 자세하고 세밀하게 알고 싶은 부분이.. 2024. 4. 28.
자바 - TreeSet으로 코테 푸는 법 마지막 문제다... TreeSet은 Java에서 SortedSet 인터페이스를 구현하는 자료구조로, 내부적으로 레드-블랙 트리를 사용하여 요소를 자동으로 정렬합니다. TreeSet의 주요 특징은 데이터가 정렬된 상태로 유지되며, 이를 통해 순서에 의존적인 다양한 문제들을 효율적으로 해결할 수 있다는 점입니다.TreeSet을 사용해야 하는 문제 유형정렬된 데이터 유지: 입력 데이터의 순서를 자동으로 정렬해야 하는 경우.집합 연산: 정렬된 상태로 빠른 집합 연산(교집합, 합집합, 차집합 등)을 수행해야 할 때.범위 탐색: 특정 범위 내의 데이터를 빠르게 조회하거나 처리해야 할 때.가장 좋은 문제와 솔루션 예제문제: 데이터 스트림의 중간값 찾기문제 설명: 연속적으로 입력되는 데이터 스트림에서 각 단계별로 중간.. 2024. 4. 28.
자바 - LinkedHashSet으로 코테 푸는 법 문제 2개만 더 풀면 끝이다, 힘내자!!!💖 LinkedHashSet은 HashSet의 순서 보장 기능을 확장한 Java 컬렉션입니다. LinkedHashSet은 요소가 추가된 순서를 유지하면서 HashSet의 모든 특성(빠른 접근 시간, 중복 허용 안 함 등)을 유지합니다. 이 특성 때문에 LinkedHashSet은 순서가 중요하거나 데이터 삽입 순서를 기록해야 할 때 유용하게 사용될 수 있습니다.LinkedHashSet을 사용해야 하는 문제 유형순서를 유지해야 하는 중복 제거: 입력 순서대로 요소를 저장하면서 중복을 허용하지 않아야 할 때.순서가 중요한 데이터 집합 연산: 집합 연산을 수행하면서 요소의 입력 순서를 유지해야 하는 경우.최근 사용 데이터 추적: 최근에 추가된 요소를 추적하면서 중복 입.. 2024. 4. 28.
자바 - HashSet으로 코테 푸는 법 코딩 테스트에서 Set과 특히 HashSet을 사용하는 경우와 대표적인 유형들을 자세히 살펴보겠습니다. Set은 중복을 허용하지 않는 자료구조이며, HashSet은 이 중에서도 해시 테이블을 기반으로 구현되어 있어 특히 조회, 추가, 삭제 작업에서 빠른 성능을 제공합니다.1. 코테에서 Set을 사용해야 하는 경우Set은 주로 다음과 같은 상황에서 유용합니다:중복 제거: 데이터 컬렉션에서 중복된 요소를 제거해야 할 때.존재 여부 확인: 특정 요소가 데이터 컬렉션 내에 존재하는지 빠르게 확인할 때.집합 연산: 다른 컬렉션과의 합집합, 교집합, 차집합을 구할 때.2. 대표적인 Set 써야 하는 유형유일한 요소 찾기: 배열이나 리스트에서 모든 중복을 제거하고 유일한 요소만을 유지해야 하는 문제.공통 요소 탐색:.. 2024. 4. 28.
자바 - Set 이야기 Set이 뭐 별 거 있나.중복 안 돼야 되면 셋 쓰는 거지... Java에서 Set은 컬렉션 프레임워크의 인터페이스 중 하나로, 중복을 허용하지 않는 데이터의 집합을 관리하는 데 사용됩니다. Set 인터페이스는 Collection 인터페이스를 확장하며, 요소의 순서를 보장하지 않는 특성이 있습니다. Set은 값의 존재 유무를 체크하거나, 중복을 제거하는 등의 작업에서 유용하게 사용됩니다.Java에서 사용할 수 있는 주요 Set 구현체HashSet가장 많이 사용되는 Set 구현체입니다.내부적으로 HashMap을 사용하여 요소를 저장합니다.요소의 추가, 삭제, 조회 작업의 시간 복잡도는 평균적으로 O(1)입니다.요소의 순서를 유지하지 않으며, null 값도 저장할 수 있습니다.LinkedHashSetHash.. 2024. 4. 28.
자바 - ArrayDeque으로 코테 푸는 법 😉 시작해볼까?! ArrayDeque는 Java의 Deque 인터페이스를 구현한 배열 기반의 더블 엔디드 큐(double-ended queue)입니다. LinkedList와 함께 자바에서 가장 일반적으로 사용되는 덱 구현체 중 하나로, 양쪽 끝에서 요소를 효율적으로 추가하거나 제거할 수 있는 구조입니다. ArrayDeque는 스택이나 큐의 기능을 모두 구현할 수 있어 매우 유연하며, 특히 메모리 사용과 성능 측면에서 많은 장점을 제공합니다.ArrayDeque의 주요 특징높은 효율성: ArrayDeque는 내부적으로 동적 배열을 사용하여 요소를 저장합니다. 배열을 사용하기 때문에 메모리 할당이 연속적이며, 요소에 대한 빠른 임의 접근이 가능합니다.용량 제한 없음: ArrayDeque는 초기 용량을 설정할.. 2024. 4. 28.