전체 글 (282) 썸네일형 리스트형 백준 네번째점 #include using namespace std;struct Point{ long double x, y; Point() = default; Point(float X, float Y) : x(X), y(Y) { } Point operator+ (const Point& other) const { return Point(x + other.x, y + other.y); } Point operator- (const Point& other) const { return Point(x - other.x, y - other.y); } bool operator== (const Point& other) const { return x == other.x && y == other.y; } bool operator> q.. 백준 회전하는 큐 #include #include #include #include using namespace std;int main(void){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; int cnt = 0; cin >> n >> m; deque de; for (int i = 0; i > num; for (int j = 0; j 07 - 보조기억장치 대중적인 보조기억장치로는 하드디스크와 플래시메모리가 있다. 다양한 보조기억장치 하드 디스크자기적인방식으로 데이터를 저장하는 보조기억장치.하드디스크의 구성 요소플래터 : 디스크에서 데이터가 실질적으로 저장되는 동그란 원판으로 저장 공간이다. 플래터는 자기 물질로 덮여 있어 수많은 N극과 S극을 저장한다. 각각 0과 1의 역할을 수행한다.스핀들 : 플래터를 회전 시키는 구성 요소. 플래터 중앙에 위치하여 플래터를 회전 시키는데 이 속도를 RPM으로 표현.헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소. 플래터 위에 미세하게 떠 있는 채로 데이터를 읽기,쓰기 한다.디스크 암 : 헤드를 원하는 위치로 이동시키는 구성 요소.플래터가 데이터를 저장하는 방식 트랙 : 플래터를 여러 동심원으로 나누었을 때 .. 06 - 메모리와 캐시 메모리 주기억장치에 RAM과 ROM 있다고 했는데, 여기서는 RAM 에 대해 먼저 정리한다그리고 캐시 메모리에 대해 정리한다. 06 - 1 RAM의 특징과 종류RAM의 특징 RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다. RAM은 전원을 끄면 저장된 데이터와 명려어가 모두 날아간다. 그래서 휘발성 저장 장치라고 한다.전원이 꺼져도 유지되는 저장 장치는 비휘발성 저장 장치라고 한다. HDD, SSD, CO-ROM, USB 등이 있다.일반적으로 보조기억장치인 비휘할성 저장 장치에 보관을 하고 휘발성 장치에서 실행할 대상을 복사하여 저장한 뒤 그 데이터들을 가지고 프로그램을 실행한다.RAM의 용량과 성능RAM의 용량이 크면 저장할 수 있는 실행할 프로그램들의 데이터들이 많아 지기 때문에 그만큼 RAM이 보조.. 05 - CPU의 성능 향상 기법 05 - 1 빠른 CPU를 위한 설계 기법 클럭컴퓨터의 논리회로에 가해지는 전기 신호의 단위로 Hz 로 표현한다.즉, CPU의 속도를 나타내는 단위이며, 이는 일정하지 않다. 최대 클럭 속도를 강제로 끌어올리는 것을 오버클럭킹이라고 한다.클럭 속도를 계속 높이면 발열 문제가 심각해진다. 따라서 클럭 만으로 CPU 속도를 올리는 것은 한계가 있다.코어와 멀티 코어코어 : 명령어를 실행하는 부품이다. 즉, CPU 안에 코어가 8개 있다면 명령어를 실행하는 부품이 8개라는 뜻이다. 이렇듯 2개 이상의 코어를 가지고 있으면 멀티코어 CPU,프로세서라고 부른다.코어를 계속 늘린다고 연산 처리 속도가 비례 증가 하지 않는다. 따라서, 중요한 것은 코어마다 처리할 명령어들을 적절하게 분산시키는 것이다.스레드와 멀티 .. 04 - CPU의 작동 원리 04 - 1 ALU 와 제어 장치 ALU CPU 내부 계산을 담당한다.ALU가 받아들이는 정보피연산자 : 피연산자는 레지스터로부터 얻어온다.제어 신호 : 제어신호는 제어 장치로부터 얻어온다.ALU가 내보내는 정보결과 값 : 메모리로 바로 가지 않고 레지스터에 일시적으로 저장한다.플래그 : 플래그는 연산 결과에 대한 추가정보이다. 이 플래그는 플래그 레지스터에 저장된다.플래그 종류1. 부호 플래그 - 결과가 양수, 음수 인지 나타냄2. 제로 플래그 - 결과가 0인지 아닌지 나타냄3. 캐리 플래그 - 결과가 올림수나 빌림수가 발생했는지 나타냄4. 오버플로우 플래그 - 오버플로우가 발생했는지 나타냄5. 인터럽트 플래그 - 인터럽트가 가능한지 나타냄6. 슈퍼바이저 플래그 - 커널 모드, 사용자 모드 중 어떤.. 동적계획법 메모리를 더 사용하여 이미 접근했던 배열을 추가 접근하지 않는 방식. 하향식 접근법 재귀에서 많이 사용 됨.dp 를 사용하는 알고리즘 이항 계수 ( 5 개 중 2 개 뽑는 경우의 수는?) 보통 이항 계수를 재귀로 푸는데 그러면 재귀 호출이 너무 많아진다.이를 방지하기 위해 메모이제이션이라는 방식을 이용한다.배열에 호출된 특정 방식에 대한 결과 값을 저장하여, 해당 특정 방식이 반복되어 호출 될 경우에 배열에 저장한 값을 가져오는 방식이 동적 계획법이다. int cache[50][50];int Combination(int n, int r){ // 기저 사례 if (r == 0 || n == r) { return 1; } // 이미 답을 구한 적 있으면 바로 반환 int& ret = cache[n][r].. 최소 신장 트리 최소 스패닝 트리 - 그래프/트리의 응용최소 스패닝 트리를 알아보기 위한 자료구조가 있다.상호 배타적 집합(Disjoint Set) -> 유니온-파인드 라고도 함.(합치기-찾기) 상호 배타적 집합 코드예로 알아본다. 리니지 배틀그라운드 라는 혼종을 만든다!혈맹전 + 서바이벌을 합치는 게임을 만든다면?1인 팀 1000명 (팀id 0 ~ 999 ) 고유 id 부여 동맹 시스템 있음 ( 1번팀 + 2번팀 = 하나의 팀 ) 이렇게 됨 일반적으로 팀 병합을 한다면 시간복잡도 O(n) 으로 안좋음void NewGame(){ struct User { // 내가 속해 있는 팀을 Id 로 구분 int teamId; // TODO }; // TODO : UserManager vector users; for (int .. 이전 1 ··· 16 17 18 19 20 21 22 ··· 36 다음