본문 바로가기

활동/2022 하계 모각코7

[2022 하계 모각코] 7주차 1회 계획 및 결과 7주차 1회 계획 : 최장증가부분수열(LIS) 탐구 이번주는 최장증가부분수열알고리즘에 대해 탐구할 계획이다. 평소에는 기존에 알고 있는 알고리즘에서 확장적으로 알아나가려 했다. 이번 기회에 전혀 모르던 알고리즘을 집중적으로 파고들어 보았는데, 정말 신선한 경험이었다. 최장증가부분수열(LIS, Longest Increasing Subsequence)이란? 주어진 수열에서 순서대로 증가하는 가장 긴 부분수열이다. 예로 알아보자. '1, 2, 7, 4, 3, 9' 의 수열이 있다. 증가하는 부분수열을 뽑아보면 '1, 7, 9', '2, 7, 9', '4, 9', '2, 4', ... 가 있다. 이 부분수열들 중 길이가 가장 긴 수열이 바로 최장증가부분수열이다. 위에서 주어진 수열에서의 LIS는 '1, 2, 7.. 2022. 8. 10.
[2022 하계 모각코] 6주차 1회 계획 및 결과 6주차 1회 계획 : 코드트리 사이트에서 제공하는 '동적 계획법 알고리즘' part 학습 '컴프2 예습 -> 알고리즘 공부' 계획 수정 이유 : 선배들과 이야기 나누면서 컴프2 과정에 대해 예습은 큰 이점을 가지지 못할 것 같았음. 프로그래밍 언어의 기능을 알기보단 차라리 프로그래밍 언어의 동작 원리를 아는 것이 더 좋을 것이라 판단함. 하지만 동작 원리를 알아내는 것은 공부하면서 시작을 호기심으로 접근하는 것이 좋겠다고 생각했고, 결국 알고리즘 공부로 전향. DP는 원래부터 공부하려 했던 알고리즘인데. 어떻게 공부를 해야할지 한참 막막했다. 좋은 기회로 얻은 코드트리 문제집으로 공부했다. 이번 시간에는 Mmemoization과 Tabulation을 공부했다. 이 둘은 간단한 피보나치 구현이라 쉽게 따라.. 2022. 8. 1.
[2022 하계 모각코] 5주차 1회 계획 및 결과 5주차 1회 계획 : 컬렉션 프레임워크(collection framework(Queue)) 공부 이번 주차 계획 Queue 개념 정리 Queue 를 활용한 문제 풀이 Queue Queue는 Stack과는 달리 선입선출(혹은 후입후출) 자료구조이다. 스택은 먼저 넣은 것은 가장 바닥에 깔리게 되어 맨 마지막에 꺼낼 수 있다. 어떻게 생각해보면 물병같은 것이다. 입구와 출구가 같아서 가장 바닥에 있는 것을 꺼내려면 가장 위에 있는 것부터 꺼내야 한다. 반면에 Queue는 입구의 반대편에 출구가 있다. 그래서 가장 처음에 넣은 것은 가장 처음으로 꺼내볼 수 있다(FIFO, First In First Out). 큐와 스택의 차이는 분명하기에 헷갈리지 않도록 하자. 자바에서 Queue를 쓰는 방법은 Collect.. 2022. 7. 25.
[2022 하계 모각코] 4주차 1회 계획 및 결과 4주차 1회 계획 : 컬렉션 프레임워크(collection framework(Map, Stack)) 공부 이번주는 Map, stack, queue에 대한 공부를 하려 한다. 고등학교 친구, 같은 과 선배들과 백준 문제를 통해 Stack에 대한 개념을 알고 있다. 또한 Map은 조금 찾아보니 Python의 딕셔너리와 같은 개념인지라 이번 시간에는 개념은 가볍게 보고, 관련 문제를 풀이해보는 시간을 가지려고 한다. Map은 수학 시간에 배운 함수에서 대응된다 혹은 상을 맺는다(map, mapping)에서 따온 말이라고 한다. Map의 저장 방식은 'key-value'이다. 그래서 어떤 자료를 찾아보고자 한다면 앞부터 순차적으로 탐색하는 것이 아니라 찾으려는 곳만 펼쳐본다고 한다. 이런 글을 보고선 본래 자료.. 2022. 7. 18.
[2022 하계 모각코] 2주차 1회 계획 및 결과 최종 목표 : 컴프 2 대비 2주차 1회 계획 : 컬렉션 프레임워크(collection framework(list, set))의 개념 공부 공부한 내용 정리 list 란 무엇일까? list는 크기가 정해지지 않은 동적 배열이라고 한다. 자바의 배열은 크기를 n으로 정해주면 n+1 개의 정보를 담을 수 없다. 하지만 list는 크기가 정해지지 않았기 때문에 정보의 개수가 일정하지 않은 경우 list를 사용하는 것이 배열을 사용하는 것보다 유리하다. 자바에서 list는 인터페이스라고 한다. 그래서 ArrayList, Vector, LinkedList 등이 있다고 한다. 컴프2에서는 ArrayList를 주로 사용한다고 하니 우선 ArrayList를 정리하겠다. ArrayList arrList = new Arr.. 2022. 7. 7.
[2022 하계 모각코] 1주차 1회 계획 및 결과 최종 목표 : 컴프2 대비 1주차 1회 계획 : Java 지네릭스(Generics), 열거형(enum) 의 개념 공부 공부한 내용 정리 제네릭(generic)이란 무엇일까? 제네릭은 클래스나 메소드 안에서 사용할 변수들의 타입을 미리 알리는 방법이다. 제네릭을 시용하는 이유는 클래스나 메소드 안에서 자료형(data type)에 대해 크게 고민할 필요가 줄어들기 때문이라고 한다. class MyArray{ T element; void setElement(T element){this.element = element;} T getElement() {return element;} } public class Generic_study { public static void main(String[] args){ MyA.. 2022. 6. 30.
임시 페이지 모각코 활동을 위한 카테고리. 임시페이지. 2022. 6. 15.