반응형
알고리즘 3주차 - 해쉬

기술개발/Algorithm 2021. 1. 29. 21:11

해쉬 해쉬 테이블이란? 컴퓨팅에서 키를 값에 매핑할 수 있는 구조인 연관 배열 추가에 사용되는 자료 구조 해시 함수를 사용하여 색인(index)을 버킷(bucket), 슬롯(slot)의 배열로 계산 데이터의 저장과 검색이 아주 빠르게 진행된다. 파이썬에서는 딕셔너리 = 해쉬 테이블 딕셔너리 키를 통해 바로 데이터를 받아올 수 있으므로 속도가 매우 빠름 찾는 데이터에 대해 배열을 전부 다 둘러보지 않고도 바로 값을 조회할 수 있는 자료구조 딕셔너리는 내부적으로 배열을 사용 class Dict: def __init__(self): self.items = [None] * 8 이와 같은 구조에서 해쉬 함수를 이용하여 저장과 검색을 진행 해쉬 함수 class Dict: def __init__(self): self..

알고리즘 3주차 - 큐

기술개발/Algorithm 2021. 1. 28. 20:52

큐 한쪽 끝으로 자료를 넣고, 반대쪽에서는 자료를 뺄 수 있는 선형구조 놀이기구가 한 줄로 서서 한줄로 나오는 것을 비유 가능 First In First Out 💡 큐가 제공하는 기능 enque(data): 맨 뒤에 데이터 추가 dequeue(): 맨 위의 데이터 뽑기 peek(): 맨 위의 데이터 보기 isEmpty(): 큐가 비었는지 안 비었는지 여부 반환 스택과 마찬가지로 데이터 넣고 뽑는 걸 자주하는 자료 구조이므로 링크드 리스트와 유사하게 구현 가능 스택과 다르게 끝과 시작의 노드를 전부 가지고 있어야 함 self.head, self.tail class Node: def __init__(self, data): self.data = data self.next = None class Queue: d..

알고리즘 3주차 - 스택

기술개발/Algorithm 2021. 1. 27. 17:55

스택 한쪽 끝으로만 자료를 놓고 뺄 수 있는 자료구조 Last in First out, First in Last out(빨래통 구조) 넣은 순서를 쌓아두고 있기에 예를 들면 컴퓨터의 되돌리기 기능에 활용되는 구조 💡 스택이 제공하는 기능 push(data): 맨 위에 데이터 넣기 pop(): 맨 위의 데이터 뽑기 peek(): 맨 위의 데이터 보기 isEmpty(): 스택이 비었는지 안 비었는지 여부 반환해주기 데이터의 삭제와 삽입이 잦은 자료 구조기에 링크드 리스트와 유사하게 구현 class Node: def __init__(self, data): self.data = data self.next = None class Stack: def __init__(self): self.head = None def..

알고리즘 3주차 - 정렬(병합 정렬)

기술개발/Algorithm 2021. 1. 26. 18:29

병합 정렬 실제 면접에서 자주 출제됨(직접 구현 형식) 배열의 앞 부분과 뒷 부분의 두 그룹으로 나누어 각각 정렬한 후 병합하는 작업의 반복 [1, 2, 3, 5] # 정렬된 배열 A [4, 6, 7, 8] # 정렬된 배열 B [] # 두 집합을 합칠 빈 배열 C ↓ 1단계 : [1, 2, 3, 5] ↓ [4, 6, 7, 8] 1과 4를 비교합니다! 1

알고리즘 3주차 - 개요, 정렬(버블, 선택, 삽입)

기술개발/Algorithm 2021. 1. 25. 20:08

3주차에 배울 것 정렬 스택, 큐의 개념과 활용법 해쉬의 개념과 활용법 정렬 정렬이란 데이터를 순서대로 나열하는 것이다. 정렬하기 위해서는 다양한 방법이 있다. 대표적으로 스택/큐, 해쉬 등을 배워보고자 한다. 스택/큐 스택과 큐는 들어가고 나오는 곳이 정해져있는 자료구조 스택: Last in, first out 큐: First in, first out 해쉬 해쉬 알고리즘을 통해 문자열을 고정된 길이의 데이터로 만들 수 있음 블록체인 기술에서도 쓰이고 딕셔너리를 만들 때도 활용됨 예전에 수업시간에 해시 테이블, 체이닝기법, 개방주소 기법을 배웠던 것이 어렴풋이 기억난다.... 정렬 정렬이란? 데이터를 순서대로 나열하는 방법 이는 이진 탐색을 가능하게 하기도, 데이터를 효율적으로 탐색할 수 있게 만든다 컴..

나 자신과의 약속

기타 끄적끄적 2021. 1. 22. 19:48

신년을 시작하며 블로그를 생활시(1일 1포스팅)하기로 마음 먹었다. 지금까지 내가 끄적끄적 작성한 아이폰 메모, 에버노트와 메모의 외부 스크랩 자료, 원 드라이브, 구글 드라이브의 자료 등 포스팅할 콘텐츠는 매우 많은 상태이다. 매번 이와 같은 자료를 보면서 암 걸리는 기분이었다....... 내 머리속에서 조차도 구조화가 제대로 되지 않고 이렇게 파편화된 자료를 "노션"으로 모으면서 문서 자료는 구글 드라이브(프로젝트, 과제 진행 중) -> 원드라이브(완료) 식으로 저장하며 외부 자료 클리핑과 자체 메모 등에 대한 나만의 자료 저장 흐름, 아키텍처를 만들고 싶다. 서두가 길었는데 결론은 블로그에도 내가 공부한 자료나 지식을 위주로 정리하고자 한다. 근 몇주는 꾸준히 포스팅을 해왔다고 생각했는데, 그저께부..

알고리즘 2주차 - 숙제

기술개발/Algorithm 2021. 1. 19. 20:30

Q1. 링크드리스트 끝에서 k번 째 값 출력하기 ❓ Q. 링크드 리스트의 끝에서 K번째 값을 반환하시오. [6] -> [7] -> [8] # 이런 링크드 리스트가 입력되었을 때, # 끝에서 2번째 값은 7을 반환해야 합니다! # 코드 스니펫 class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self, value): self.head = Node(value) def append(self, value): cur = self.head while cur.next is not None: cur = cur.next cur.next = Node(value) def get_kth_nod..

AWS Elastic Beanstalk에서 배포한 서비스 EC2 접속

기술개발/AWS 2021. 1. 18. 11:59

AWS beanstalk에 배포된 서버에서 테스트 시도 aws 웹사이트에서도 콘솔 접속이 가능하지만 vscode로 접속하고자 했음 이유는 로컬에서 편하게 서버 환경을 볼 수 있고 수정에 용이하기 때문 Problem Shooting -Problem: beanstalk에서 생성한 EC2 인스턴스에 접속하는 방법을 알지 못함 ssh로 시도해보았을 때 Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 에러 발생 -Solution: https://cofs.tistory.com/377 - pem 키 필요함을 알게됨 -Result: pem 키를 새로 생성하고자 함 Pem 키 생성 및 다운로드 진행 과정 참고 - https://jojoldu.tistory.com/..

Article Thumbnail
알고리즘 2주차 - 이진탐색, 재귀

기술개발/Algorithm 2021. 1. 16. 19:10

이진탐색과 재귀함수 이진탐색은 반을 쪼개고 탐색하는 방식 순차탐색은 하나하나 탐색하는 방식 이진탐색을 항상 사용할 수 있는 것은 아니므로 어떨 때 사용 가능한지 배워야함 이진탐색 vs 순차탐색 이진탐색: 1~100 숫자 맞추기 놀이를 한다고 했을 때 "범위의 절반인 50"을 시도하는 방식. 50을 말한다. 대답이 up이라면 1~49는 후보에서 없어진다. 대답이 down이라면 51~100은 후보에서 없어진다. ............ # 예제 코드. 14를 찾는 코드 finding_target = 14 finding_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] def is_existing_target_number_binary(targe..

맥북 한/영키 구름 입력기 설정

기술개발/TIL(Today I Learned) 2021. 1. 15. 19:58

고통의 나날 왼쪽 command + space는 적응이 너무 안되어서 나는 caps lock 버튼을 이용해 한/영 변환을 하고 있었다.. 하지만 매번 씹히는 일이 다반사.... 너무나도 불편했다. 그러다가 우연히 한 정보를 접하게 되었다. 구름 입력기를 이용하면 우측 command키로 수정할 수 있다는 것!!!! 구름 입력기 이와 같은 불편함을 해결하기 위한 오픈소스 프로젝트이다. 이름하여 macOS의 새로운 입력기 "구름 입력기"!!!! https://github.com/gureum/gureum/releases 다운로드는 위의 링크에서 받을 수 있고 나는 최신 버전을 다운 받았다. 여기서 최신버전의 pkg 파일을 받고 설치해주면 설정에서 정상적으로 구름 입력기가 노출된다. 설정 시스템 환경설정 → 키보..

Article Thumbnail
반응형