트리
2021. 7. 20. 15:34
🕶 Algorithm/자료구조
트리 (Tree) 구조 트리: Node와 Branch를 이용해서, 사이클을 이루지 않도록 구성한 데이터 구조 실제로 어디에 많이 사용되나? 트리 중 이진 트리 (Binary Tree) 형태의 구조로, 탐색(검색) 알고리즘 구현을 위해 많이 사용됨 알아둘 용어 Node : 트리에서 데이터를 저장하는 기본 요소 (데이터와 다른 연결된 노드에 대한 Branch 정보 포함) Root Node : 트리 맨 위에 있는 노드 Level : 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node : 어떤 노드의 다음 레벨에 연결된 노드 Child Node : 어떤 노드의 상위 레벨에 연결된 노드 Leaf Node (Terminal Node) : Child No..
선형대수 - 행렬과 선형변환
2021. 7. 19. 18:19
✏️ Mathemathics/Linear Algebra
행렬의 곱이라는 것은 두 열벡터의 선형 결합으로 볼 수 있지 않을까? 의 관점으로 볼 수 있다. 행렬 자체가 열벡터에 대한 함수로 작동할 수 있다. 함수인데 특정한 규칙이 정해진 함수라고 생각할 수 있다. 임의의 벡터 →a, →b와 스칼라 c 에 대하여 변환 T 가 다음의 두 조건을 만족한다면 이 변환 T 는 선형변환이다. 따라서, 위의 선형 변환의 성질에 따라, 임의의 벡터 (x, y)에 대해서 다음이 성립한다. x와 y는 분리가 된다. 원래의 기저 벡터 두 개를 아래와 같이 ^i, ^j 라 하고, 새로운 기저 벡터를 ^inew, ^jnew 라 했을 때, T 가 선형변환이라면, 벡터 [x y] 는 선형 변환 후에 새로운 기저 벡터 ^inew 와 ^jnew 의 x 배와 y 배의 합으로 표현되어야 한다는 ..
해쉬 테이블
2021. 7. 19. 17:20
🕶 Algorithm/자료구조
해쉬 구조 Hash Table: 키(Key)에 데이터(Value)를 저장하는 데이터 구조 Key를 통해 바로 데이터를 받아올 수 있으므로, 속도가 획기적으로 빨라짐 파이썬 딕셔너리(Dictionary) 타입이 해쉬 테이블의 예: Key를 가지고 바로 데이터(Value)를 꺼냄 보통 배열로 미리 Hash Table 사이즈만큼 생성 후에 사용 (공간과 탐색 시간을 맞바꾸는 기법) 단, 파이썬에서는 해쉬를 별도 구현할 이유가 없음 - 딕셔너리 타입을 사용하면 됨 알아둘 용어 해쉬(Hash) : 임의 값(방대한 데이터)을 고정 길이(ex. 256)로 변환하는 것 해쉬 테이블(Hash Table) : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수(Hashing Function) : Key(키를 ..
시간복잡도
2021. 7. 16. 18:55
🕶 Algorithm/자료구조
알고리즘 복잡도 계산이 필요한 이유 시간복잡도 : 알고리즘의 풀이 시간을 정략적으로 표기하는 방법 하나의 문제를 푸는 알고리즘은 다양할 수 있음. 즉, 풀이가 다양하다. 정수의 절대값 구하기 1, -1 ->> 1 방법1: 정수값을 제곱한 값에 다시 루트를 씌우기 방법2: 정수가 음수인지 확인해서, 음수일 때만, -1을 곱하기 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해, 복잡도를 정의하고 계산함 알고리즘 복잡도 계산 항목 시간 복잡도: 알고리즘 실행 속도 공간 복잡도: 알고리즘이 사용하는 메모리 사이즈 가장 중요한 시간 복잡도를 꼭 이해하고 계산할 수 있어야 함 알고리즘 시간 복잡도의 주요 요소 반복문을 가지고 시간복잡도를 계산한다. 시간이 어디에서 제일 많이 걸리느냐를 보면 반복문이다..
선형대수 - 행벡터의 의미와 벡터의 내적
2021. 7. 16. 17:56
✏️ Mathemathics/Linear Algebra
지금까지 우리는 벡터란 무엇인지에 대해 알아보고, 행렬과 벡터의 곱에 대해 알아보았다. 짧게 요약하자면 벡터란 상수배(곱셈 규칙)와 덧셈 규칙이 정의되는 원소들이라고 하였으며, 이들의 집합에 이 연산들이 정의된 집합을 벡터 공간(vector space)라고 한다고 하였다. 여기서 이러한 상수배와 덧셈 규칙이 정의되는 원소들을 ‘선형성을 갖는다’라고 표현한다. 또, 행렬은 벡터를 또 다른 벡터로 변환 시키는 일종의 연산자로 볼 수 있으며, 특히 행렬과 벡터의 곱은 행렬의 열벡터들을 얼마나 선형결합 시킬 것인가라는 의미로 볼 수 있다고 하였다. 이번 시간에는 행벡터의 기능과 역할에 대해 알아보고, 이를 통해 벡터의 내적이 왜 기하학적으로 한 벡터에서 다른 벡터로의 정사영과 관련이 되어 있는지를 알아보고자 한..
연결 리스트 (Linked List)
2021. 7. 16. 11:31
🕶 Algorithm/자료구조
연결 리스트(Linked List) Linked List 구조 연결 리스트라고도 함 배열은 순차적으로 연결된 공간에 데이터를 나열하는 데이터 구조 연결 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 본래 C언어에서는 주요한 데이터 구조이지만, 파이썬은 리스트 타입이 링크드 리스트의 기능을 모두 지원 미리 데이터 크기를 예약해 놓지 않고, 필요할 때마다 추가추가 하는 것 : 배열의 단점을 극복한 구조 Linked List 기본 구조와 용어 노드(Node): 데이터 저장 단위 (데이터값, 포인터) 로 구성 포인터(pointer): 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 * 일반적인 링크드 리스트 형태 파이썬에서 링크드 리스트 구현시 class..
자료구조, 알고리즘, 배열, 스택, 큐
2021. 7. 15. 11:31
🕶 Algorithm/자료구조
자료구조 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미 대표적인 자료구조 : 배열, 스택, 큐, 링크드 리스트, 해쉬 테이블, 힙 등 알고리즘 어떤 문제에 대해, 특정한 '입력'을 넣으면, 원하는 '출력'을 얻을 수 있도록 만드는 프로그래밍 얼마나 시간이 걸리느냐, 얼마나 메모리를 차지하느냐가 주 요소 따라서 코드를 짰을 때 얼마나 메모리를 차지하고 얼마나 시간이 걸렸는지 알고 있어야 한다. 자료구조와 알고리즘이 중요한 이유 어떤 자료구조와 알고리즘을 쓰느냐에 따라, 성능이 천지차이이다. 배열(Array) 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 유사한 데이터를 연결된 데이터 공간에 넣을 수 있다. 파이썬에서는 리스트 타입이 배열의 기능을 제공한다. 배열이..
AWS RDS 구축
2021. 7. 9. 15:34
🚦 Server/AWS
1. RDS 생성 현재는 프리 티어를 이용중이니 프리 티어를 선택해준다. 사용자 이름 : SeonWooChan 암호 : swc1****** DB 인스턴스 크기와 스토리지는 변경사항이 없으니 그냥 넘어간다. 생성중. 약 10분정도 소요된다. 2. 파라미터 설정 RDS를 처음 생성하면 몇 가지 설정을 필수로 해야 한다. 1. 타임존 2. Character Set 3. Max Connection 설정을 하기 위해 왼쪽 카테고리에서 [파라미터 그룹]을 클릭해서 이동한 후, [파라미터 그룹 생성] 버튼을 누른다. 생성한 파라미터 그룹을 클릭해준다. 위에 초록색 알림창으로 인스턴스 생성에 성공했다는 알림이 뜬다. 파라미터 수정버튼을 누른다. 검색창에 time_zone을 검색하여 time_zone 파라미터를 Asia..
./configure 뜻
2021. 7. 8. 12:51
🚦 Server/Linux
linux에서 ./configure와 --prefix의 의미는 무엇입니까? 명령어 인가요? Xinetd 설치하기에서 # cd xinetd-2.1.8.9pre14 # ./configure --prefix=/usr --sysconfdir=/etc --with-loadavg --with-libwrap 해석 좀 부탁합니다. ------------------------------------------------------------------------------------------- ./configure 는 쉽게 설명을 하면 인스톨을 하기 위한 환경을 설정하는 프로그램입니다.. --prefix=/usr 는 컴파일된 프로그램을 설치하는 위치이구요... 여기에서는 컴파일된 프로그램들을 /usr 디렉토리로 인스톨하..
AWS 서버 설치
2021. 7. 7. 22:39
🚦 Server/AWS
1. 인스턴스 생성 2. 탄력적 IP 주소 할당 $ find / -name RC1_server $ cd ~/.ssh $ cp /Users/seon-uchan/Downloads/RC1_server.pem ./ 3. 서버 접속 $ cd ~/.ssh $ sudo ssh -i "RC1_server.pem" ubuntu@ec2-13-124-93-100.ap-northeast-2.compute.amazonaws.com 4. nginx 설치, 연결 $ sudo apt update $ sudo apt-get install nginx $ sudo service nginx start $ sudo netstat -ntlp 구동 확인 주소창 ec2-13-124-93-100.ap-northeast-2.compute.amazon..
Bitnami local 서버 구축, 포트포워딩
2021. 7. 7. 17:56
🚦 Server/AWS
1. Local 서버 구축 (Bitnami) /Applications/mampstack-8.0.7-1 swc1****** 설치완료 2. 포트포워딩 http://222.117.185.146 핸드폰에서 접속 성공
nginx
2021. 7. 2. 11:14
🚦 Server/AWS
polkit-agent-helper-1: pam_authenticate failed: Authentication failure 일반적으로 데몬은 슈퍼유저로 리스트해야 합니다. 일반 계정이라 안되는거 같은데요. sudo 로 안되시면 su 체인지 후 해보세요. $ service nginx status sudo netstat -ntlp 80번 포트 열려있고 nginx 사용중 $ sudo ssh -i "softsquerd_server.pem" ubuntu@ec2-3-37-59-42.ap-northeast-2.compute.amazonaws.com Password: swc1560820 The authenticity of host 'ec2-3-37-59-42.ap-northeast-2.compute.amazonaw..
백준 알고리즘 - 1000 - A+B
2021. 6. 28. 22:05
⏰ 코딩테스트/백준 알고리즘
a,b = [int(x) for x in input().split()] print(a+b) 띄어쓰기로 입력 받아서 x에 넣어 준다. 그리고 int 형으로 바꾸어주고 리스트 형태로 저장한다.
APM 자동 설치
2021. 6. 28. 10:38
🚦 Server/AWS
$ apt-get upgrade $ apt-get update $ apt-get install sudo $ apt-get install upgrade $ apt-get install g++ $ sudo apt-get -y install lamp-server^ $ sudo apt install systemd mysql 경우 워크벤치라는 GUI의 관리 툴이 있는데 같이 설치 되면서 자동 설치가 된다. 아파치나 php는 원하는 위치에 압축 풀면 사용할 수 있다. 물론 몇개의 설정파일을 수정해야 한다. $ systemctl restart apache2 $ systemctl enable apache2 $ systemctl status apache2 restart : 이상이 있거나, 설치 직후 enable : 서버..
PHP 수동 설치
2021. 6. 27. 18:00
🚦 Server/AWS
1. 패키지 설치 $ apt-get install libxml2-dev $ apt-get install libjpeg-dev $ apt-get install libpng-dev $ apt-get install libsqlite3-dev 2. PHP tar.gz 다운로드, configure, make, make install 현재 Apache 2.x에는 두 가지 버전이 있으며 2.4와 2.2가 있다. 각각을 선택하는 데는 여러 가지 이유가 있지만 2.4는 현재 최신 버전이며 해당 옵션을 사용할 수있는 경우 권장되는 버전이다. 그러나 여기의 지침은 2.4 또는 2.2에서 작동합니다. Apache httpd 2.2는 공식적으로 단종되었으며 새로운 개발 또는 패치가 발행되지 않습니다. $ cd /usr/loca..