본문 바로가기

전체 글79

정보처리기사 필기 합격후기 | 정보처리기사 실기 합격 후기 | 실제로 쉽게 공부한 방법 | 정보처리기사 쉽게 합격하는 방법 | 정보처리기사 책 추천 안녕하세요 공대나온 엔지니어 청년 입니다. 이번에 정보처리기사를 합격하게 되어서 (필기 평균 76점, 실기 70점)간단하면서도 알찬 취득 방법 및 후기를 남기려고 합니다.참고로 저는 기사 자격증을 3개 가지고 있고 어떻게 공부할 때 덜 스트레스 받으면서 공부할 수 있는지 쉽게 합격할 수 있는지 자격증을 취득하면서 본능적으로 깨달은게 있습니다. 그 부분을 중점적으로 공유하려고 합니다. 그것은 바로 필기 시험이든 실기 시험이든 결국 기출문제만 풀게 된다는 것 입니다.이것만 깨닫는다면 생각보다 꽤나 싶게 기사 자격증을 취득할 수 있는데요 정보처리기사 기준으로 설명을 해보겠습니다. (전기기사와 전기공사기사는 약간 다릅니다. 궁금하시면 댓글 달아주세요 ㅎㅎ) 1단계(필기)일단은 저도 사람인지라 필기 기본서를 하나.. 2024. 6. 20.
[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.
[C++] 백준 1969번: DNA 문제 링크 https://www.acmicpc.net/problem/1969 풀이 방법 DNA s1, s2, ..., sn가 주어져 있을 때 Hamming Distance의 합이 가장 작은 DNA s를 구해야 한다. 해당 문제의 핵심 Key Point는 입력된 문자열 s1,s2, ...., sn 똑같은 위치에 존재하는 알파벳 중 가장 많은 알파벳을 사전 순서대로 넣으면 해당 문자열 s를 구할 수 있다. 아래 예시를 참고하면 이해가 될 것이다. TATGATAC TAAGCTAC AAAGATCC TGAGATAC TAAGATGT 위 문자열에서 첫 번째 위치로 설명을 하면 T가 4개, A가 1개 이므로 T를 선택하면 된다. 이런 식으로 각 위치 별로 가장 많이 존재하는 알파벳을 하나 선택하면 TAAGATAC가 선.. 2024. 2. 4.
[C++] 백준 2870번: 수학숙제 문제 링크 https://www.acmicpc.net/problem/2870 풀이 방법 해당 문제를 푸는데 꽤 시간이 소모되었다. 이 문제를 해결하는데 가장 중요한 Key Points는 네 가지다. 우선 문자열 시작부터 탐색하여 숫자로만 이루어진 문자열을 추출한다. 추출한 해당 문자열이 모두 0으로 이루어져 있으면 "0"하나만 vector에 담는다 0으로 시작하는 숫자는 모두 무시하고 0 이후 시작되는 숫자부터 문자열을 다시 추출하여 vector에 담는다. 숫자를 int, long long 형으로 담으면 Over Flow가 발생할 수 있으니 문자열 그대로 비교 함수를 만들어서 숫자를 오름차순 정렬한다. 위 설명과 아래 코드의 주석을 참고해서 해당 문제를 이해하자! 코드 #include using name.. 2024. 2. 4.
[C++] 백준 3613번: Java vs C++ 문제링크 https://www.acmicpc.net/problem/3613 풀이방법 해당 문제는 다양한 조건을 전부 고려해야 한다는 부분에서 어려운 문제라고 생각한다. 하나라도 놓치면 해당 문제를 맞출 수 없기 때문에 다음과 같은 조건을 잘 고려해야 한다. 맨 뒤 문자가 '_' 이면 (Error!) 맨 앞 문자가 '_' 이면 (Error!) '_' 연속 두개 존재하면 (Error!) 맨 앞 문자가 대문자면 에러 (Error!) 대문자와 '_'가 각각 1개 이상 동시에 존재하면 (Error!) 그 외에 문제에서 정해진 조건인 영어 알파벳과 밑줄('_')로만 이루어져 있는 경우는 정상이라고 볼 수 있다. 아래 코드의 주석을 참고해서 해당 문제를 이해하자! 코드 #include using namespace s.. 2024. 2. 4.