프로그래밍 104

[코지] c++ 숫자 문자 구분

개요 정수를 구분하는 코드 핵심 1. 정수 범위 2. 판별법 std::isdigit 을 사용하여 ASCII의 값이 숫자인지 문자인지 판별 3. 유의 사항 +11 과 -11이 들어와도 처리 가능 해야한다. Code https://github.com/toward-the-best/coding_test/blob/main/unit_test/range_check/number_or_alphabe.cpp GitHub - toward-the-best/coding_test Contribute to toward-the-best/coding_test development by creating an account on GitHub. github.com 연관 코테 https://www.acmicpc.net/problem/1000..

[코지] 수학적 개념 정리

개요. 코테를 위해서 필요한 수학적 개념 정리와 이를 구하는 방법을 C++로 알아보겠습니다. 코테 수학 기초 개념 1. 약수 어떤 수나 식을 나누어 나머지가 없이 떨어지는 수나 식을 일컫는 말. 2. 최대 공약수 최대공약수(GCD)란 두 수 이상의 여러 수의 공약수 중 최대인 수를 가리킵니다. 3. 소수 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수다 4. 조합 숫자 배열에서 순서 상관없이 뽑을 수 있는 가지의 수 5. 순열 숫자 배열에서 순서에 따라 뽑을 수 있는 가지의 수 수학 기초 개념 구현 1. 약수 std::vector factor(int value) { int max = value / 2; // 모든 약수는 입력 값을 제외하면 입력값의 절반 이하에서만 나온다. std::vector..

[코지] DFS, BFS 정리

DFS (Depth-First-Search) 1. 사용 시기 그래프 를 순회 할때 사용합니다. 2. 구현 방법 stack 을 사용하여 구현 합니다. stack first-in last-out 3. 동작 순서 1. 시작 할 node를 stack에 집어 넣습니다. 2. stack에 넣은 것 1개를 빼서 출력 3. 뺀것과 열결된 node를 모두 stack에 입력 4. 2, 3번 을 무한 반복 5. stack에 더이상 없으면 프로그램을 종료 DFSR (Depth-First-Search-Recursion) 1. 사용 시기 그래프 를 순회 할때 사용합니다. 2. 구현 방법 재귀 함수를 사용하여 구현 합니다. 3. 동작 순서 1. 시작 할 node를 재귀함수에 넣습니다. 2. 재귀 함수에서 바로 입력 받는 node를..

[linux] libc 와 glibc 와 libstdc++ 와 gcc의 관계 정리

개념 정리 libc 최초의 libc, 이것이 원래의 고대 표준 라이브러리 구현체입니다. 현재는 libc는 "표준 C 라이브러리"를 말하는 대 명사처럼 사용 됩니다. glibc glibc는 GNU에서 만든 libc 입니다. glibc는 리눅스 시스템에서 가장 저수준의 API이며 거의 모든 runtime library가 glibc에 의존합니다. 예를 들면 c코드에서 fopen 함수를 사용하면 시스템에서 sys_open이 트리거 되고 중간 처리를 해주는 것이 glibc입니다. glibc 자체는 시스템 호출을 캡슐화하는 것 말고도 문자열, malloc, linuxthread, locale, signal등과 같은 상위 레벨 응용 프로그램에 필요한 기능을 제공합니다 libc++ libc++는 Clang 프로젝트에서..

[리눅스] thread 및 process에 CPU Core 할당 하기

사용시기 1. 실행하는 프로세스와 관련된 인터럽트가 특정 CPU 코어에서만 트리거됨(IRQ Affinity라고 하죠.) 2. 프로세스가 여러 CPU 코어에 옮겨 다니면서 실행할 때 요구되는 오버헤드(마이그레이션)을 최소화하자 - 고성능을 내기 위한 프로그램을 구현 할 때 종종 사용 됩니다. 필수 define #define _GNU_SOURCE 헤더 #include // process에 CPU를 할당 할때 사용 #include // thread에 CPU를 할당 할때 사용 process에 CPU 할당 void set_cpu(int core_id) { const pid_t pid = getpid(); // CPU 정보 초기화 cpu_set_t cpuset; CPU_ZERO(&cpuset); // CPU 정보에..

[프로그래머스] 소수 찾기Level 2

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심 1. 완전 탐색 알고리즘 기법 중 하나인 bitmask 기법을 알아야한다. 2. 순열을 구하는 알고리즘을 알아야한다. - C++에는 순열을 구하는 next_permutation 함수가 존재한다. 4. 소수 판별 법을 알아야 한다. 3. 문자열 연산은 느리다. 숫자 연산을 최대한 한다. 코드 #include #include #include #include #include #include ..