STUDY 50

[1주차 TIL] KnockOn Bootcamp Pre.Rev : 연결리스트

연결리스트란연결리스트추상적 자료형인 리스트를 구현한 자료구조로서, 메모리에 저장될 때 데이터와 그 다음 데이터의 주소를 가리키는 포인터를 가진 노드가 서로 연결되어 있는 리스트이다.배열 VS 연결리스트구분배열연결리스트메모리구조연속적비연속적삽입 / 삭제높음위치탐색 : O(n)낮음위치 탐색 : O(n)삭제 : O(1) 노드 연결 끊음접근속도빠름 O(1)연속된 메모리,인덱스를 활용하여 접근느림 O(n)메모리 효율추가 공간 필요 없음.포인터 메모리 추가 필요특징고정크기, 빠른 접근가변크기, 잦은 삽입, 삭제단일연결리스트단일 연결리스트는 데이터와 다음 노드를 가리키는 포인터만 존재한다.이중연결리스트이중연결리스트는 선행 노드와 후속 노드에 대한 두개의 링크를 가지는 연결리스트로서, 양방향으로 검색이 되고 순회가 가..

[1주차 TIL] KnockOn Bootcamp Pre.Rev : 헤더파일

헤더파일이란헤더파일C언어에서 함수는 먼저 함수의 원형에 대해 선언이 되어 있어야한다.표준함수 역시 선언이 되어야하는데, 이런 표준 함수의 원형 및 관련 정보가 들어간 파일을 헤더파일이라한다.헤더파일은 끝에 .h 확장자가 붙으며, 선언시에는 앞에 #include를 사용해야 적용된다.리눅스 기준으로 헤더파일은 /usr/include 디렉터리 밑에 있다.헤더파일 VS 라이브러리그렇다면 라이브러리처럼 또는 Python 처럼 모듈과 같은 것이 아니냐? 할 수 있지만, 엄연히 차이가 있다.구분헤더파일라이브러리구성사람이 알아들을 수 있는 C언어 문법으로 작성기계어로 번역된 바이너리역할함수선언, 매크로 정의, 데이터 구조 선언함수와 변수의 선언부만 포함, 구현부는 없음.함수 구현부, 동작코드가 포함된 파일프로그램 실행..

리눅스 네트워크 및 프로세스 관련 명령어

netstat은 네트워크 상태를 보여주는 명령어로, 연결된 포트, IP 주소, 송수신 데이터량 등을 확인할 수 있다.주요 옵션netstat -a : 모든 소켓(연결된 것과 대기 중인 것)을 표시netstat -t : TCP 연결만 표시netstat -u : UDP 연결만 표시netstat -l : 현재 수신 대기(listening) 중인 포트만 표시netstat -p : 각 연결에 관련된 프로그램의 PID와 이름을 표시netstat -n : IP 주소와 포트 번호를 숫자로 표시 (호스트 이름과 서비스 이름을 해석하지 않음)netstat -r : 라우팅 테이블 표시netstat -s : 프로토콜별 통계 표시netstat -c : 실시간으로 네트워크 상태를 표시 (1초 간격으로 갱신)예시netstat -an..

STUDY 2024.11.14

vim 명령어 정리

Vim 기본 명령어Vim은 강력한 텍스트 편집기로, 효율적인 코드 편집과 관리에 유용하다. 아래는 Vim 사용에 필요한 주요 기본 명령어다.모드 전환Normal 모드: Esc 키를 누르면 Normal 모드로 돌아옴.Insert 모드: i를 누르면 입력 모드로 전환.Visual 모드: v를 눌러 Visual 모드로 전환하여 블록 선택.Command 모드: :를 눌러 명령 모드로 전환.커서 이동h : 왼쪽으로 이동j : 아래로 이동k : 위로 이동l : 오른쪽으로 이동gg : 파일의 맨 처음으로 이동G : 파일의 맨 끝으로 이동:숫자 : 특정 행으로 이동 (예: :10은 10번째 줄로 이동)편집 명령어i : 현재 커서 위치 앞에서 입력 모드I : 현재 줄의 맨 앞에서 입력 모드a : 현재 커서 위치 뒤에서 ..

STUDY 2024.11.14

[AI] 특성공학과 규제

개요 이전에서는 하나의 특성을 사용하여 선형 회귀 모델을 훈련시켰다. 1개의 특성을 사용했을 때 선형회귀모델이 학습하는 것은 직선이다. 2개의 특성을 사용하면 평면을 학습한다. 여러 개의 특성을 사용한 선형회귀를 다중회귀라 부른다. 특성이 많으면 많을 수록 복잡한 모델이 된다. 그러나 3차원 공간을 뛰어넘는 3개의 특성을 가진 상태, 그 이상을 그릴 수 없다. 그래서 있는 특성을 이용해서 새로운 특성을 만드는데, 이렇게 기존의 특성을 이용해서 새로운 특성을 뽑아내는 작업을 특성공학이라고 한다. 특성공학 데이터준비 이전과 달리 농어의 특성이 길이, 높이, 두께 3개로 늘어났다. pandas를 이용해서 농어 데이터를 인터넷에서 내려받아 데이터프레임에 저장하겠다. 그 이후에 넘파이배열로 전환시켜주자 panda..

STUDY 2022.11.06

[AI] 선형회귀

개요 이전 k-최근접 이웃 회귀에서는 가장 가까운 k개의 이웃 샘플을 찾고 이 샘플들의 타깃값을 평균으로 하여 예측으로 삼는다. 실습 import numpy as np perch_length = np.array( [8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 28.7, 30.0, 32.8, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0, 39.0, 39.0, 39...

STUDY 2022.11.06

[AI] k-최근접 이웃 회귀

k-최근접 이웃 회귀 란 k-최근접 이웃 회귀는 똑같이 예측하려는 샘플에 가장 가까운 샘플 k개를 선택한다. 이웃한 샘플의 타깃은 k-최근접 이웃 분류 알고리즘과는 달리 어떤 클래스(도미인지 빙어인지) 그런 것이 아닌 임의의 수치이다. 그런 다음 이웃 샘플의 수치들의 평균을 구하면 그 평균이 샘플 x의 예측타깃값이 된다. 아래 실습은 농어의 길이와 무게 데이터가 있는데 농어의 길이만 있어도 무게를 잘 예측할 수 있다고 생각했으므로, 농어의 길이가 특성이고, 무게가 타깃이 될 것이다. import numpy as np perch_length = np.array( [8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21...

STUDY 2022.11.06

함수 호출 규약

개요 Dreamhack 함수 호출 규약에 대해서 공부한 것을 정리한 포스트이다. 함수 호출 규약이란? 함수 호출 규약은 함수의 호출 및 반환에 대한 약속 한 함수에서 다른 함수를 호출할 때, 프로그램의 실행 흐름은 다른 함수로 이동하고, 호출한 함수가 반환하면, 다시 원래의 함수로 돌아와서 기존의 실행 흐름을 이어나간다. 그러므로 함수를 호출할 때는 반환된 이후를 위해 호출자(Caller)의 상태(Stack frame) 및 반환 주소(Return Address)를 저장해야 한다. 또한, 호출자는 피호출자(Callee)가 요구하는 인자를 전달해줘야 하며, 피호출자의 실행이 종료될 때는 반환 값을 전달받아야 한다. x86(32bit) Architecture 특징 레지스터를 통해 피호출자의 인자를 전달하기에는..

STUDY/Pwnable 2022.10.21