728x90
반응형

크래프톤 정글 5기 47

[크래프톤 정글 5기] 알고리즘의 벽에 부딪히다

지난 주 월요일에 입소하여, 목요일에 미니프로젝트를 마침과 동시에, 알고리즘 주차 발제를 받고, 알고리즘을 바로 시작하여 벌써 화요일이 되었다. 알고리즘 공부를 하면서 느낀 점은 "정말 답없다" 였다. 정글에서 제시하는 문제들은 난이도가 높은 문제가 많아서, 한 문제에 하루 종일을 쏟는 일이 허다하다. 풀다가 모르겠어서 정답을 봐도 이해가 잘 안된다. 정답 코드를 보고 분석하며 이게 왜 이렇게 되는지, 원리를 이해하는 것 만으로도 몇 시간, 반나절이 훌쩍 간다. 정말 어렵고.. 힘들고... 아주 끔찍하다. 지금까지 공부해본 것 중, 컴퓨터와 IT분야 뿐만이 아닌 모든 분야를 통틀어서 가장 어렵고 머리아프고 힘들다. 다만 다행인 것은.. 나만 그런 게 아니라는 것이다. 이곳에 온 모두가 끔찍하게 어려워하고..

[크래프톤 정글 5기] week01 알고리즘 주차 여섯번째 날, 해시 테이블, 힙, 우선순위 큐, 이진 트리, 피보나치

해시 테이블(Hash Table)- 먼저 키(key)와 값(value)으로 구성된 데이터가 필요하다.- 여기서 “key”를 해시값으로 만들어, 해당 해시값을 “인덱스”로써 활용하여 테이블에 저장한다. 여기서 해시값은 정수 형태가 된다.- 데이터(value)를 해시하여 인덱스로 쓰는 거 아니냐는 사람들이 있는데, 이럴 경우 value가 같으면 인덱스가 중복될 수 있다. 해시함수는 같은 입력에 대해서 항상 같은 해시값을 만들기 때문이다.- 어떤 값을 찾든 O(1)의 복잡도를 가진다. 고유값으로 접근하면 되기 때문.- 해시 테이블에서 만들어진 원소를 버킷(Bucket)이라고 한다. 해시 테이블의 장/단점- 장점 : 자료의 검색, 읽기, 저장 속도가 빠르다. 즉 데이터 조회가 빠르다.- 장점 : 자료가 중복되는..

[크래프톤 정글 5기] week01 알고리즘 주차 다섯번째 날, CPU, 인스트럭션, 퀵 정렬(Quick Sort)

버스(Buses) - 시스템 내를 관통하는 “전기적 배선군” - 컴포넌트들 간에 “워드(word)라는 고정 크기의 바이트 단위”로 바이트 정보들을 전송한다 워드(word) - 고정 크기의 바이트 단위 - 워드의 바이트 수는 시스템마다 보유하는 기본 시스템 변수이다. - 대부분의 컴퓨터는 4바이트 또는 8바이트의 워드 크기를 갖는다 입출력 장치 - 시스템과 외부세계와의 연결을 담당한다 - 입력 : 키보드, 마우스 등 - 출력 : 디스플레이 등 메인 메모리 - 프로세서(CPU)가 프로그램을 실행하는 동안, 데이터와 프로그램을 모두 저장하는 “임시 저장장치” - 물리적 메인 메모리는 "DRAM칩"들로 구성되어 있음 - 논리적 메모리는 연속적인 바이트들의 배열로, 0부터 시작해서 각각 고유주소(배열의 인덱스)를..

[크래프톤 정글 5기] week01 알고리즘 주차 네번째 날, 스택, 큐, DFS, 그래프, 백트래킹, 이분 탐색

스택(Stack) - 후입선출(Last In First Out) 구조 - 마지막에 들어온 데이터가 가장 먼저 나간다 - 파이썬에서는 리스트와 pop(), append() 메소드로 스택을 구현할 수 있다 큐(Queue) - 선입선출(First In First Out) 구조 - 먼저 들어온 데이터가 가장 먼저 나간다. “공정한 자료구조” - from collections import deque 사용해서 deque 자료구조를 활용하는 게 좋다 - deque는 스택, 큐의 장점을 모두 채택한 것인데 리스트에 비해 빠르고 queue 라이브러리를 이용하는 것 보다 간단하다 - append(), popleft()를 이용하여 큐를 구현할 수 있다 DFS(Depth-First Search, 깊이 우선 탐색) - 그래프에..

[크래프톤 정글 5기] week01 알고리즘 주차 두번째 날, Big-O, 시간/공간 복잡도

리처드 파인만 공부법- 무언가를 간단하게 설명할 수 없다면, 그것을 제대로 이해하고 있는 것이 아니다- 어린이도 이해할 수 있을 만큼 쉽고 평이한 언어로 설명할 수 있도록 공부해야 함-> 어려운 단어, 문장을 그대로 외우는 게 아닌, 원리를 이해하여 간단히 설명할 수 있도록 연습 알고리즘 평가는 수행 시간/메모리 사용량에 기준을 둔다.시간 복잡도(Time Complexity)- 수행 시간에 해당함- 특정 크기의 입력을 기준으로, “필요한 연산의 횟수” 공간 복잡도(Space Complexity)- 메모리 사용량- 프로그램 실행/완료에 “필요한 메모리 공간” 시간 복잡도와 공간 복잡도는 “반비례”하는 경향이 있다.ex) 실행시간을 줄이면 메모리를 많이 쓰고, 메모리를 적게 쓰면 실행시간이 늘어나고...실제..

[크래프톤 정글 5기] 첫 프로젝트를 마무리하며

4일 전 3월18일 월요일에 아침 7시20분 버스를 타고 수원으로 왔다. 기숙사 키와 정글 로고가 그려진 후드집업과 반팔을 받고, 기숙사에 짐을 풀고, 필요한 물품을 사고. 점심 먹고 14시부터 입소식이 시작되었다. 입소식이 마무리된 16시경부터 생각을 정리할 새도 없이 갑작스럽게 첫 미니프로젝트가 시작되었다. 팀원은 나까지 총 3명. 주제는 "어떤 식으로든 돌아가는 웹 서비스 만들기". 주어진 시간은 3박 4일. 하지만 3박 4일이라고 해도 첫날은 16시부터 시작했고 두번째날은 중간중간 행사가 있어 흐름이 끊겼고, 세번째날만 온전히 집중할 수 있는 날이었다. 게다가 마지막 4일째는 13시30분이 발표였다. 즉.. 말이 3박4일이지 사실상 2박3일이나 다름없었다. 개발이라곤 스프링 CRUD게시판 클론코딩..

[크래프톤 정글 5기] 최종합격 후기

크래프톤 정글 5기에 최종합격했다. 12월 초 지원서를 내고 입학과정을 처음 시작할 때 자기소개서, 1분 자기소개영상, 입학시험, 면접이라는 4중 나생문에 잔뜩 쫄아 있었지만 결국 또 어찌저찌 해냈다. 그래서 오늘은 정글 입학과정에 대한 후기를 작성해 보고자 한다. 크래프톤 정글 홈페이지 : https://jungle.krafton.com/main 정글의 커리큘럼은 개발자가 스스로 성장할 수 있게 돕는, 컴퓨터공학(전산학)기초에 중점을 두었다. 도구(프레임워크 등)를 사용하는 법을 배우는 게 아닌, 어떤 도구를 사용하더라도 본인의 역량을 뽐낼 수 있도록 하는 것이 정글의 목표라고 생각한다. 스스로 생각하고, 발전하고, 응용하고. 기계마냥 같은 코드를 뽑아내는 게 아닌 다양한 상황에서 다양한 해결 방법을 ..

업적 2024.02.06
728x90
반응형