반응형

공부 47

[ 운영체제] 운영체제 시작하기

1. 운영체제를 알아야하는 이유 우리가 사용하는 모든 컴퓨터에는 운영체제가 설치되어있다. 대표적인 데스크토 운영체제로는 윈도우와 맥, 리눅스가 있고 스마트폰 운영체제로는 안드로이드와 IOS가 있다. 컴퓨터 부품들은 운영체제의 지휘하에 작동한다. 1.1 운영체제란 모든 프로그램은 하드웨어를 필요로한다. 이때 프로그램 실행에 마땅히 필요한 요소들을 가리켜 시스템자원 혹은 자원이라고한다. 컴퓨터구조에서 배웠던 CPU, 메모리 등 모두 시스템 자원이라고 할 수 있다. 여기서 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램이 운영체제이다. 운영체제도 하나의 프로그램이다. 그래서 운영체제 또한 메모리에 적재되어야한다. 하지만 운영체제는 특별하기 때문에 메모리내의 커널영역이라는..

공부/운영체제 2023.01.11

[ 컴퓨터구조 ] 데이터

1. 0과 1로 숫자를 표현하는 방법 컴퓨터는 0과 1로 모든 정보를 표현하고 이해한다. 1.1 정보단위 컴퓨터는 0과1밖에 이해하지 못한다. 0과 1을 나타낸느 가장 작은 정보 단위를 비트라고한다. n개의 비트가 있을 때 2^n개의 정보를 표현할 수 있다. 우리가 실핸하는 모든 프로그램은 수십, 수백만 비트로 미루어져있다. 하지만 우리가 프로그램의 용량을 말할때 23238432981비트야! 라고 말하지는 않는다 ㅋ 1바이트(byte) - 8비트 1킬로바이트(kB) - 1000비트 1메가바이트(MB) - 1000킬로바이트 1기가바이트(GB) - 1000메가바이트 1테라바이트(TB) - 1000기가바이트 * 워드(word) : CPU가 한번에 처리할 수 있는 데이터의 크기이다. 대부분의 컴퓨터는 32비트혹..

[ Pandas ] 산술연산 (시리즈, 데이터프레임)

판다스 객체의 산술연산은 내부적으로 3단계의 프로세스를 거친다. 행/열 인덱스를 기준으로 모든 원소를 정렬한다. 동일한위치에 있는 원소끼리 일대일로 대응시킨다. 대응이되는 원소끼리 연산을 처리한다. (이때 대응되는 원소가 없다면 NaN으로 처리) 1. 시리즈연산 1.1 시리즈 vs 숫자 시리즈 객체에 어떤 숫자를 더하면 시리즈의 개별원소레 각각 숫자를 더하고 계산한 결과를 시리즈 객체로 반환한다. + - % * 모두 가능하다. Series객체 + 연산자 + 숫자 그냥 계산식 쓰듯이 자연스럽게 써주면된다. 1.2 시리즈 vs 시리즈 시리즈의 모든 인덱스에 대하여 같은 인덱스를 가진 원소끼리 계산하여 새 시리즈를 반환한다. import pandas as pd # 딕셔너리 데이터로 판다스 시리즈 만들기 stu..

[ 컴퓨터구조 ] 컴퓨터구조 시작하기

1. 컴퓨터구조를 알아야하는 이유 컴퓨터구조를 왜 배워야할까? 배워야하는 이유를 모르면 공부가 노잼이다. 근데 공부해야하는 이유를 공부하는것도 노잼이다 ㅋㅋ 컴퓨터구조는 야매개발자들은 잘 모르는!! 실력자 개발자들이 되려면 알아야하는! 기본 지식이다. 1.1 문제해결 공부를 좀 해본사람은 알테지만 예제코드를 그대로 쳐도 코드가 제대로 안돌아갈 때가 있다. 이런 상황은 실무에서도 일어난다. 이런 경우레는 코드의문법적인 이유는 아닐 것이다. 하지만 코딩의 문법만 아는사람은 이를 해결할 수 없다.. 하지만 컴퓨터구조를 이해하고 있다면 문제상황을 빠르게 진단할 수 있고, 문제해결의 실마리를 다양하게 찾을 수 있다. 글구 이를 기업들도 알고있기 때문에 기술면접에서 많이 물어보기도한다. 컴퓨터구조는 코더가 아닌 개..

[ Pandas ] 인덱스 활용

1. 특정 열을 행 인덱스로 설정 set_index()메소드를 사용하여 데이터 프레임의 특정 열을 행 인덱스로 설정한다. 단,원본 데이터 프레임을 바꾸지 않고 새로운 데이터 프레임 객체를 반환하는 점에 유의한다. inplace=True를 추가하면 다시 지정이된다. DataFrame객체.set_index(['열이름'] 또는 '열이름') 2. 행 인덱스 재배열 reindex()메소드를 사용하면 데이터프레임의 행 인덱스를 새로운 배열로 재지정할 수 있다. 이 또한 새로운 데이터 프레임 객체를 반환한다. DataFrame객체.reindex(새로운 인덱스 배열) 기본 데이터 프레임에 존재하지 않은 행 인덱수가 새롭게 추가되는 경우 그 행의 데이터 값은 NaN 값이 입력된다. 그 모양이 맘에 안든다면 인자로 fil..

[ Pandas ] 판다스 자료구조 (시리즈, 데이터 프레임)

DataFrame객체.loc[행인덱스, 열이름] DataFrame객체.iloc[행번호, 열번호] 데이터는 형태나 속성이 매우 다양하다. 서로 다른 형식을 갖고 있는 데이터들을 컴퓨터가 이해할 수 있도록 하기 위해서는 구조를 통합해줘야한다. 이를 위해 판다스는 1차원 배열인 시리즈와 2차원 배열인 데이터 프레임이라는 구조화된 데이터 형식을 제공한다 판다스의 1차적인 목적은 서로 다른 데이터 형식을 공통의 포멧으로 만드는 것이다. 1. 시리즈 시리즈는 데이터가 순차적으로 나열된 1차원 배열의 형태를 갖는다. 인덱스와 데이터 값은 일대일 대응이된다. 파이썬의 딕셔너리와 비슷하다고 볼 수 있다. 1.1. 딕셔너리를 시리즈로 변환 pandas.Series(딕셔너리) #딕셔너리->파이썬 1.2 인덱스와 배열 ser..

[ 알고리즘 ] BFS

1. 알고리즘 설명 다차원 배열에서 각 칸을 방문할 때 너비를 우선으로 방문하는 알고리즘 시작하는 칸을 큐에 넣고 방문했다는 표시를 남김 큐에서 맨 앞의 원소를 꺼내어 그 칸에 상하좌우로 인접한 칸에 대해 3번을 진행 해당칸을 이전에 방문했다면 아무것도 하지 않고, 처음으로 방문했다면 방문했다는 표시를 남기고 해당 칸을 큐에 삽입 큐가 빌 때까지 2번을 반복 시간복잡도는 모든 칸이 큐에 한번씩 들어가므로 칸이 N개일 때 O(N)이된다. 2. 코드 BFS는 코딩테스트에서 굉장히 중요한 부분이므로 꼭 잘 숙지해야함! #include using namespace std; #define X first #define Y second // pair에서 first, second를 줄여서 쓰기 위해서 사용 int bo..

공부/알고리즘 2023.01.05

[ 알고리즘 ] 스택의 활용(수식괄호의 쌍)

주어진 괄호 문자열이 올바른지 판단하는 것! 어떻게 판단해야할까? 괄호쌍을 찾아야함! 연결리스트로도 구현가능하지만 스택으로도 가능! 여는 괄호면 스택에 넣고 닫는괄호는 스택의 맨 뒤에있는 괄호와 짝 짓기! 짝이 안맞거나, 여는괄호와 닫는괄호의 개수가 맞지않을때 틀린 수식이라는것을 알아 챌 수 있음

공부/알고리즘 2023.01.01

[ 알고리즘 ] 스택 , STL stack

스택이란 선입후출의 자료구조이다. 원소의 추가,제거,제일상단의 원소확인이 O(1)에 가능하지만 다른 위치의 원소확인과 변경이 원칙적으로 불가능하다. 하지만 배열과 연결리스트로 스택을 구현한다면 가능하다. 1. 배열로 스택 구현하기 cosnt in MX=1000005; int dat[MX]; int pos=0 //위치 void push(int x){ dat[pos++]=x; } void pop(){ pos--; } void top(){ dat[pos-1]; } 2. STL #include using namespace std; int main(void) { stack S; S.push(10); // 10 S.push(20); // 10 20 S.push(30); // 10 20 30 cout

공부/알고리즘 2022.12.21

[ C++ ] STL 정리

1. STL이란? Standard Template Library 의 약자 반복자, 컨테이너, 알고리즘 함수객체 등의 라이브러리로 구성 2. 컨테이너 기본 자료형과 유저가 정의한 자료형을 담는 일종의 자료구조 2.1 시퀀스 컨테이너 일반적인 자료구조와 동일한 형태 (vector / list / string / deque ...) 자료를 입력한 순서대로 저장하기 때문에 저장, 검색, 알고리즘에 불리하다. 적은 양의 자료나 검색 속도가 중요하지 않은 경우에 사용한다. 2. 연관 컨테이너 일정한 규칙에 따라 자료를 조직화하여 저장 (set / map / multiset / multimap ...) 자료를 정렬하여 저장하기 때문에 검색에 유리하다. 많은 양의 자료나 검색 속도가 중요한 경우에 사용한다. 3. 어댑..

공부/C++ 2022.11.18
반응형