본문 바로가기

C++66

[C++]ThreadPool이란 ? 1. ThreadPool이란? ThreadPool은 여러 작업을 동시에 처리하기 위해 사용되는 개념입니다. 일반적으로 프로그램에서는 각 작업마다 쓰레드(Thread)를 생성하여 처리하게 되는데, ThreadPool은 이런 쓰레드를 미리 생성해놓고 재사용함으로써 성능을 향상시키는 기술입니다. 2. ThreadPool이 필요한 이유 쓰레드 생성 및 삭제는 오버헤드가 큰 작업이기 때문에, 각 작업마다 매번 쓰레드를 생성하고 삭제하는 것은 비효율적입니다. ThreadPool을 사용하면 쓰레드를 미리 생성해놓고 작업이 있을 때마다 해당 쓰레드를 활용함으로써 성능을 향상시킬 수 있습니다. 3. Thread Pool의 사용법 3.1 C++ 코드 예제 및 코드에 대한 상세한 설명 #include #include #in.. 2024. 2. 19.
[C++] 백준 15312번: 이름 궁합 문제 링크 https://www.acmicpc.net/problem/15312 풀이 방법 위 문제는 처음 입력받은 두 문자열을 한 글자씩 번갈아 가면서 대응되는 숫자 값으로 변경하여 문제를 해결할 수 있다. 해당 문제를 푼 시퀀스는 다음과 같다. 코드는 두 개의 문자열 'A'와 'B'를 입력받아 각 문자에 대응하는 값을 계산한다. 입력된 문자열의 길이만큼 반복하면서, 각 문자에 대응하는 알파벳 값으로 계산한 결과를 순차적으로 'result' 벡터에 저장한다. 그 후, 'result' 벡터의 크기가 2보다 큰 동안 아래 과정을 반복한다. 'result' 벡터를 순회하면서 현재 값과 다음 값의 합을 계산하고, 만약 합이 10 이상이면 10을 뺀 값을 'tempResult' 벡터에 저장한다. 계산이 끝나면 '.. 2024. 2. 4.
[C++] 백준 9536번: 여우는 어떻게 울지? 문제 링크 https://www.acmicpc.net/problem/9536 풀이 방법 이 문제는 주어진 녹음 결과에서 동물의 울음소리를 찾는 문제입니다. 주어진 녹음 결과 문자열과 동물의 울음소리가 주어졌을 때, 동물의 울음소리 중에서 녹음 결과에 없는 소리를 찾아 출력하는 문제이다. 다음과 같은 시퀀스로 문제를 해결 할 수 있다. 입력 받은 녹음 결과 문자열을 공백을 기준으로 분할하여 벡터에 저장한다. "what does the fox say?"라는 문장이 나올 때까지 동물의 울음소리를 입력 받아 동물의 울음소리 중에서 실제 녹음 결과에 포함되는 소리를 벡터에 저장한다. 모든 녹음 결과와 동물의 울음소리를 비교하여 녹음 결과에 없는 동물의 울음소리를 찾아 결과 벡터에 저장합니다. 결과 벡터에 저장된 .. 2024. 2. 4.
[C++] 백준 2999번: 비밀 이메일 문제 링크 https://www.acmicpc.net/problem/2999 풀이 방법 위 문제는 정인이가 암호화한 문자열을 다시 해독하는 문제이다 따라서 암호화 하는 과정으로 이해하면 안 되고 해독하는 과정으로 이해해야 한다. 아래 예시를 들어보겠다. 만약 R=2, C=3 인 경우 암호화 된 문자열이 koaski라고 할 때 다음과 같이 3x2 배열의 형태로 변경한다. ko as ki 인덱스가 0인 열부터 전부 읽어 나가면 kakosi가 된다. 이 원리를 이용해서 문제를 쉽게 해결할 수 있다. 위 설명과 아래 코드의 주석을 참고해서 해당 문제를 이해하자! 코드 #include using namespace std; const int MAX_N = 105; char arr[MAX_N][MAX_N]; int .. 2024. 2. 4.