C++ - STL 컨테이너
STL 컨테이너STL 컨테이너는 데이터를 보관하고 관리하기 위해서 필요한 여러가지 기능을 제공한다. Vector동적 배열로 배열의 크기를 변경할 수 있다.임의 접근이 가능하며, 뒤에서의 삽입이 빠르다.삽입, 삭제, 탐색 O(n), 임의 원소 접근 O(1) 보장한다.list연결리스트이므로 데이터를 순차적으로 접근하고 관리할 때 유용하다.위치에 상관없이 삽입과 삭제가 빠르다.삽입, 삭제 O(1), 탐색, 임의 원소 접근 O(n) 보장한다.deque임의 접근이 가능하며, 앞과 뒤에서의 삽입이 빠르다.삽입, 삭제, 탐색 O(1), 임의 원소 접근 O(n) 보장한다.map특정 키(key)로 데이터를 접근하고 관리할 수 있다.키로 값에 접근하며 삽입과 삭제가 빠르다.삽입, 삭제, 탐색 모두 O(log n) 보장se..
2024.07.31
no image
C++ [Algorithm] - 백준 13458 시험 감독
문제 시험장마다 사람의 수를 갖고 먼저 총 감독관의 값을 뺀 후 count++그 후 부감독/C를 한 후 반올림을 진행한다.why? 부감독이 감시할 수 있는 사람이 5명이여도 남은 학생 수가 4명이면 1명은 더 필요하기 때문에코드#include #include #include using namespace std;int main() { int A, B, C; long long answer = 0; cin >> A; vector room(A); for (int i = 0; i > room[i]; } cin >> B >> C; for (int i = 0; i 0) { answer += ceil((double)num / C); } } cout  간단한 구현 문제였지만 결과값에 대한 자료형 선언이 함..
2024.07.29
no image
C++ [Algorithm] - 백준 1012 유기농 배추
문제 간단하게 설명하자면 상하좌우 네 방향에 다른 배추가 위치한 경우 서로 인접하다. 즉 1덩어리로 본다.위 그림을 보면 총 5덩어리다. 코드#include #include using namespace std;int testCase, M, N, K;int x, y;int answer = 0;int dx[4] = { -1, 0, 1, 0 };int dy[4] = { 0, 1, 0 ,-1 };bool visited[50][50];int map[50][50];void dfs(int x, int y) { visited[x][y] = true; for (int i = 0; i = 0 && ny >= 0 && nx > testCase; for (int i = 0; i > M >> N >> K; answer = 0..
2024.07.29
no image
C++ [Algorithm] - 백준 10773 제로
문제 0을 외치면 스택에서 pop을 해준 후 모든 수를 받아 적으면 스택의 합을 구하면 된다.예제 입출력 코드#include #include using namespace std;stack myStack;void solution(int n) { if (n != 0) { myStack.push(n); } else { if (!myStack.empty()) { myStack.pop(); } }}int sum() { int answer = 0; while (!myStack.empty()) { answer += myStack.top(); myStack.pop(); } return answer;}int main() { int N; cin >> N; while (N--) { int order; cin..
2024.07.29
no image
C++ [Algorithm] - 백준 28278 스택2
문제 예제 입출력 코드#include #include using namespace std;stack myStack;void solution(int n) { switch (n) { case 1: int num; scanf("%d", &num); myStack.push(num); break; case 2: if (!myStack.empty()) { printf("%d\n", myStack.top()); myStack.pop(); } else { printf("-1\n"); } break; case 3: p..
2024.07.29
C++ - Stack
Stack이란?스택은 대표적인 LIFO 구조이다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있다.Stack의 사용stack STL을 사용하기 위해서는 #include 헤더파일을 포함해야한다.#include 선언 방법은 stack [변수 이름]이다.ex) vector myStack;스택 멤버 함수stack.push(element)스택에 데이터를 추가stack.pop()스택에 데이터를 삭제stack.top()스택의 제일 위 데이터 반환스택이 비어 있다면 정의되지 않은 동작(Undefined Behavior) 예외 처리 발생 stack.size()스택의 사이즈 반환stack.empty()스택이 비어있는지 확인비어 있으면 1을 반환, 비어 있지 않으면 0을 반환합니다.stack.sw..
2024.07.29
C++ - Vector
Vector Container란?vector 컨테이너는 자동으로 메모리가 할당되는 배열이다.template를 사용하기 때문에 데이터 타입은 마음대로 넣을 수 있다.vector를 생성하면 heap(힙) 메모리에 생성되며 동적 할당된다.일반 배열과는 다르게 동적할당(힙)을 사용하므로 주로 입력값이 몇개인지 알지 못할 때 주로 사용된다.속도적인 측면에서 array(배열)에 비해 성능은 떨어지지만 메모리를 효율적으로 관리하고 예외처리가 쉽다는 장점이 있다.Vector의 사용의 헤더파일을 추가해야한다.선언 방법은 vector [변수이름]이다.ex) vector v;Vector의 생성자와 연산자vector v비어있는 벡터를 생성vector v(5)기본값(0)으로 초기화된 5개의 원소를 가지는 vector v를 생성..
2024.07.29
no image
반도체 공정 과정 - 웨이퍼 제조 (1)
웨이퍼란 무엇인가웨이퍼는 얇은 기반 위에 다수의 동일 회로를 만들어 반도체의 직접회로가 되는 부분으로 웨이퍼는 반도체의 기반이다.실리콘(SI), 갈륨 아세나이드(GaAS) 등을 성장시켜 만든 단결정 기둥을 적당한 두께로 얇게 썬 원판을 의미한다.웨이퍼 제조 과정 1. 잉곳 만들기잉곳 만들기는 다결정 실리콘을 단결정 실리콘으로 변형시키는 과정으로, 실리콘 원료를 뜨거운 열로 녹여 고순도의 실리콘 용액을 만들고 이것을 결정 성장시켜 굳힌다.이렇게 만들어진 실리콘 기둥을 잉곳이라고 한다. 2. 잉곳 절단하기잉곳을 원파형의 웨이퍼로 만들기 위해서는 다이아몬드 톱을 이용해 균일한 두께로 얇게 써는 작업이 필요하다.웨이퍼 두께가 얇을수록 제조원가가 줄어들며, 지름이 클 수록 한 번에 생상할 수 있는 반도체 칩 수가..
2024.07.29