Data Structure(자료구조)와 Algorithm(알고리즘)
·
Algorithm/Theory
Data Structure(자료구조) 컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장을 의미 데이터 값의 모임, 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 함 효율적인 자료구조란 프로그램의 실행시간 효율과 저장공간 효율을 의미함 각 자료구조의 장단점을 숙지하고 상황별로 적합한 자료구조를 선택하는 능력이 중요 자료구조의 분류 https://wayhome25.github.io/cs/2017/04/17/cs-18/ 단순구조 : 프로그래밍에서 사용되는 기본 데이터 타입 선형구조 : 저장되는 자료의 전후 관계가 1:1 인 구조 (리스트, 스택, 큐 등) 비선형구조: 데이터 항목 사이의 ..
[Leetcode] 1. Two Sum - Top Interview Questions
·
Algorithm/Leetcode
https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. Two Sum Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly on..
[Javascript] 기초 요약
·
Javascript/Vanilla JS
간단한 웹페이지를 만들기위해 조금 건드려봤던 javascript를 빠르게 요약해보자.(vscode 단축키와 같이) [! + tab] (vscode 단축키) : html 기본 틀 작성 [(tag). + tab] (vscode 단축키) : tag를 입력하지 않고 tab을하면 div tag가 기본으로 class명을 부여하여 태그가 생성된다. [(tag)# + tab] (vscode 단축키) : tag를 입력하지 않고 tab을하면 div tag가 기본으로 id명을 부여하여 태그가 생성된다. 변수 type var : ES6 이전 버전에서 쓰이던 변수. 중복 선언이 가능하다. 따라서 코드의 길이가 길어지면 에러를 발생시킬 수 있는 가능성이 커진다. let : var과 같은 변수이지만, 중복 선언이 불가능하다. va..
[Minishell] 터미널 제어
·
42Seoul/Minishell
https://hyeonski.tistory.com/5?category=471028 [C/UNIX] 개행 없이 한 글자씩 입력받는 getch() 만들기 (터미널 제어) 프롬프트 또는 콘솔 환경을 만들기 위해서 키보드 입력을 한 자씩 받아야할 때가 있다. unistd.h의 read함수를 STDIN에서 1바이트만큼 받으면 되지 않을까? 해서 다음과 같은 코드를 실행해보았다. #in hyeonski.tistory.com https://man7.org/linux/man-pages/man3/termios.3.html termios(3) - Linux manual page termios(3) — Linux manual page TERMIOS(3) Linux Programmer's Manual TERMIOS(3) N..
[Minishell] signal
·
42Seoul/Minishell
minishell 허용함수 정리 편에서 대략적인 함수 정리를 해놓았지만 좀 더 자세히 알아보자. signal(시그널) 여러가지 시그널 중 몇 가지만 알아보자. 1. SIGHUP : 터미널과 연결이 끊겼을 때 발생. 기본적인 처리는 프로세스가 종료된다. 2. SIGINT : 인터럽트가 발생했을때 발생. 기본적으로 프로세스가 종료된다. 9. SIGKILL : 프로세스를 무조건 종료한다. 절대 무시할 수 없으며 제어할 수 없다. 11. SIGSEGV : 프로세스가 잘못된 메모리를 참조했을 때 발생. 코어덤프를 남기고 종료된다. 19. SIGSTOP : 프로세스를 중단시킨다. 종료된 상태가 아니며 제어할 수 없다. 프로세스가 시그널을 받게되면 시그널에 해당되는 기본 동작을 하거나 그 시그널을 무시하거나 사용자가..
[Minishell] 허용 함수 정리
·
42Seoul/Minishell
기본적으로 알고있는 함수들을 제외하고 minishell을 만들 때 필요한 함수에 대해 정리해보자. fork #include pid_t fork(void); fork는 자식프로세스를 만들기 위해 사용되는 함수이다. fork에 의해 생성된 자식 프로세스는 자신만의 PID를 갖게 되며, PPID는 부모프로세스의 PID를 가지게 된다. return 성공할 경우 자식프로세스 PID가 부모에게 반환, 자식에게는 0 반환 실패할 경우 -1 리턴, error에 따른 errno 값 설정 error EAGAIN 자식프로세스를 위한 task 구조체를 할당할 수 없을 경우, 메모리 문제와 관련 wait #include #include pid_twait(int *stat_loc); 주로 fork() 를 이용해서 자식 프로세스(..
[Swift] Optional(옵셔널)
·
Mac/Swift
Swift가 가지고 있는 가장 큰 특징 중 하나인 Optional(옵셔널)에 대해서 알아보자. 만약 문자열의 값이 있으면 "Hello" 가 될 것이다. 그렇다면, 값이 없으면 "" 인가? 그렇지 않다 "" 도 엄연히 값이 있는 문자열이다. 즉, 값이 없다가 아니라 비어있는 값이다. 이때 값이 없는 문자열을 의미하는 것이 바로 nil 이다. 만약 정수형의 값이 있으면 123 과 같은 값이 있을 것이다. 값이 없다면 0 인가? 역시나 그렇지 않다 0 도 0 이라는 값이다. 이 경우에도 nil 을 사용한다. 이렇게, 값이 없는 경우를 나타낼 때 nil 을 사용한다. 그렇다고해서 모든 변수에 nil 을 넣을 수 있는 것은 아니다. 값이 있을 수도 있고 없을 수도 있는 변수를 정의할 때 타입 어노테이션에 ? 를 ..
[Swift] Basic Operators(기본 연산자)
·
Mac/Swift
일반적으로 다른 언어에도 있는 연산자를 제외하고 다루겠다. Nil-Coalescing Operator(Nil 병합 연산자) nil 병합 연산자는 a ?? b 형태를 갖는 연산자이다. a 를 벗겨서(unwraps) 만약 a 가 nil 인 경우 b 를 반환한다. nil 병합 연산자는 다음 코드의 축약이다. a != nil ? a! : b a 가 nil 이 아니면 a 를 unwrap하고 nil 이면 b 를 반환하라는 의미이다. 좀 더 자세한 부분은 다음 포스팅에서 이어가겠다. Range Operator(범위 연산자) Swift에는 범위를 만드는 두 가지 Operator가 있다. ..
WONILLISM
'분류 전체보기' 카테고리의 글 목록 (17 Page)