반응형
알고리즘 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 해쉬 해쉬 알고리즘을 통해 문자열을 고정된 길이의 데이터로 만들 수 있음 블록체인 기술에서도 쓰이고 딕셔너리를 만들 때도 활용됨 예전에 수업시간에 해시 테이블, 체이닝기법, 개방주소 기법을 배웠던 것이 어렴풋이 기억난다.... 정렬 정렬이란? 데이터를 순서대로 나열하는 방법 이는 이진 탐색을 가능하게 하기도, 데이터를 효율적으로 탐색할 수 있게 만든다 컴..

알고리즘 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
알고리즘 2주차 - 링크드리스트

기술개발/Algorithm 2021. 1. 14. 18:05

수업 목표 어레이와 링크드리스트에 대해 배우고 차이점을 익히기 이진 탐색의 효율성과 전제 조건에 대해 배우기 재귀함수의 방법과 전제 조건에 대해 배우기 자료구조, 알고리즘을 배우는 이유? 특정 자료구조는 삽입/삭제가 빠르고 특정 자료구조는 조회가 빠르다. 이처럼 어떤 경우에 따라 다양한 자료구조와 알고리즘을 사용해야 한다. 능력 있는 목수가 되려면 다양한 공구들을 하나하나 배워가야 하는 것! 어레이와 링크드리스트 어레이는 순차적으로 저장 링크드리스트는 다음 node라고 불리는 공간에 데이터를 저장하고 다음 공간을 지목하는 포인터로 구성됨 어레이 rooms = ["윤아", "수영", "티파니", "효연", "유리", "태연", "써니", "서현"] 이와 같이 각 방에 해당 멤버들이 숙박한다고 가정할때 "서..

알고리즘 1주차 - 숙제

기술개발/Algorithm 2021. 1. 13. 19:09

소수 나열하기 Q. 정수를 입력 했을 때, 그 정수 이하의 소수를 모두 반환하시오. 소수는 자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수이다. input = 20 def find_prime_list_under_number(number): # 이 부분을 채워보세요! return [] result = find_prime_list_under_number(input) print(result) # 내 코드 input = 20 def find_prime_list_under_number(number): result = [] for i in range(1, number+1): count = 0 for j in range(1, i+1): if i % j == 0: count += 1 if count

알고리즘 1주차 - 점근표기법, 연습문제

기술개발/Algorithm 2021. 1. 12. 18:04

점근표기법 알고리즘의 성능을 수학적으로 표기하는 방법 즉 알고리즘의 '효율성'을 평가하는 방법. 어떤 함수의 증가 양상을 다른 함수와의 비교로 표현하는 수론과 해석학의 방법. 이전에서 공부했던 시간복잡도와 공간복잡도도 점근 표기법의 일종. 빅오(Big-O) 표기법 최악의 성능이 나올때 어느 정도의 연산량이 걸릴 것인지 표기 빅 오메가(Big-Ω) 표기법 최선의 성능이 나올때 어느 정도의 연산량이 걸릴 것인지 표기 배열에서 특정 요소 찾기 다음과 같은 숫자로 이루어진 배열이 있을 때, 이 배열 내에 특정한 숫자가 존재하면 True, 존재하지 않는다면 False를 반환하기 input = [3, 5, 6, 1, 2, 4] def is_number_exist(number, array): # 이 부분을 채워보세요..

반응형