목록분류 전체보기 (718)
쌓고 쌓다
코드(Code) 영역 텍스트 영역이라고도 부름. 실행할 프로그램의 코드를 저장(우리가 작성한 소스코드) 읽기 전용 실행파일을 구성하는 명령어들을 가져감(함수, 제어문, 상수) CPU가 코드 영역에 저장된 명령어를 하나씩 처리함.(이미 작성된 코드가 기계어로 컴파일되어 있음) 프로그램 시작하고 끝날 때까지 메모리에 존재함. 데이터(Date) 영역 전역 변수와 정적(static) 변수가 저장되는 영역. 프로그램 시작하고 끝날때까지 메모리에 존재함. 영역이 2가지(초기화 되지 않은 전역 변수는 BSS(Block started by Symbol)영역, 초기화된 데이터는 data영역) 힙(Heap) 영역 프로그래머가 동적 할당/해제하는 메모리 공간 malloc, new로 할당하고 free, delete로 해제한다..
10진법을 다른 진법으로 바꿀 때 정수 부분은 바꾸려는 기수로 나누어 나머지를 적고, 소수 부분은 기수로 곱하여 정수가 되는 부분을 적는다. 아래의 예를 통해 이해를 하자. *기수: 진법을 나타내는 기본수(10이 기수인 수를 10진법, 2가 기수이면 2진법) 10진수 -> 2진수 소수점 왼쪽 부분(정수)은 2로 나눈 나머지를 적고, 소수점 오른쪽 부분(소수)은 2를 곱하여 정수가 되는 수를 적어간다. 예를 들어 75.6875는 75(정수)와 .6875(소수) 두 부분으로 나누어 계산하자. 먼저 정수 부분을 계산해보자. 75를 2로 나누어 나머지를 적어가고 몫을 또 2로 나누어가며 반복하면 된다. 몫이 1또는 0이될때까지 반복한다. 75를 2진수로 바꾸면 1001011이 된다. 이제 소수 부분 0.6875..
우히히 여름방학 때 SQL을 공부하고 개강까지 한 달이 남아서 미뤄둔 컴활 실기 공부를 시작하였다~ 결과는 아래와 같다. 시험은 두번 연속으로 잡아놨는데 이것이 훌륭한 방법인 것 같다! 한 번만 봤다면 또,,, 긴 2주를 기다린 후 다시 공부하고 시험을 쳐야 하니 지쳤을 것이다. 그래서 시험은 두 번 이상을 접수하여 열심히 준비하고 다 태워버리는 것이 좋을 것 같다. 아래는 내가 합격할 때 받은 점수이다. 이것은 불합격 때 받은 점수... 먼저, 내가 한 공부 방법은 그냥 시나공 실기 책 한 권을 사고 이 책 한 권으로만 공부하였다. 현재 내 모니터 받침대로 열일중이긴하나 좋은 책이었다! ( 원래는 전공책을 썼는데 이번에 바꿨다! ) 방대한 기출문제와 모의고사 문제를 제공해준다. 거기다 문제마다 영상 설..
저급언어(기계어, 어셈블리어) 기계 중심의 언어 실행 속도 빠름 상이한 기계마다 다른 코드를 가짐 -> 이식성이 낮다 프로그램 크기가 고급언어보다 작다. 가독성 및 생산성이 낮다.(유지보수 불리) 1. 기계어 컴퓨터가 알아들을 수 있는 유일한 언어 CPU의 종류에 따라 서로 다른 코드를 갖는다. 2. 어셈블리어 기계어를 사람이 이해하기 쉬운 기호와 1:1로 대응시켜 기호화한 프로그램 언어(=기호언어) 어떤 프로그램도 작성 가능( 하드웨어를 직접 제어할 수 있기에 어떠한 명령도 수행 가능 ) 기계어와 비슷해 세밀한 명령 가능 하드웨어의 구조를 따라 프로그램을 달리해야 한다. 고급언어(C, C++, JAVA, FORTRAN, Pascal) 사람이 이해하기 쉽게 작성된 언어라 가독성이 높다. 특정 컴퓨터와 관..
주요 번역 방식 : 컴파일러, 인터프리터, 어셈블러(어셈블리어를 번역) 컴파일러와 인터프리터는 고급언어에서 기계어로 바꿈. 컴파일러(C, C++, JAVA) 프로그램 전체 코드를 스캔하여 모두 기계어로 번역 매번 번역할 필요는 없다. (실행 파일을 만들기 때문에) -> 인터프리터보다 실행시간이 빠름. 하지만, 전체를 스캔하기에 초기 스캔은 시간이 걸린다. 코드를 수정하면 컴파일을 다시 해야 함. 고급 언어를 기계어로 번역하는 과정에서 오브젝트 파일을 만드는데 이 파일들을 묶어 하나의 실행파일로 만드는 링킹 작업이 필요. -> 많은 메모리가 필요하다. 운영체제(OS) 이식성이 낮다. (OS마다 실행할 수 있는 기계어가 다름-> 다시 컴파일해줘야 함) 0과 1로된 기계어로 번역되기 때문에 프로그램의 코드 유..
https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 #include #include #include using namespace std; vector solution(string s) { vector answer; vector v[501]; vector v2; string str; int m=0; bool visit[100001]; // 쪼개서 쪼개진 길이에 맞게 v[length]에 넣음 for(int i=0;i=..
https://school.programmers.co.kr/learn/courses/30/lessons/67257?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 #include #include #include #include using namespace std; vector v; vector copy_v; bool visit[4]; int pri[4]; // + - * long long ans = 0; void solve(int idx, int cnt) { if (cnt == 3) { copy_v = v; while (c..
PRIMARY KEY를 사용하면 클러스터형 인덱스가, UNIQUE를 사용하면 보조 인덱스가 자동으로 생성되었다. 그 외, 직접 인덱스를 생성하려면 CREATE INDEX문을 사용한다. 인덱스 생성 인덱스를 생성하는 문법을 간단히 하면 아래와 같다. CREATE [UNIQUE] INDEX 인덱스_이름 ON 테이블_이름 (열 이름) [ASC | DESC] 이것으로 생성되는 인덱스는 보조 인덱스이다. UNIQUE는 중복이 안되는 고유 인덱스를 만드는 것이다. 이때 기존에 입력된 중복이 있으면 X (생략하면 중복 허용) 기본은 ASC로 만들어진다. 인덱스 제거 CREATE INDEX로 생성한 인덱스는 DROP INDEX로 제거한다. DROP INDEX 인덱스_이름 ON 테이블_이름 기본 키, 고유 키로 자동 생..