전체 글 33

멀티쓰레드 프로그래밍 입문

멀티쓰레드는 C++ 프로그래밍 언어 내에 멀티스레드 라이브러리에 존재한다. C++11 에 추가되었으며 표준으로 존재한다. C++ 11에서 지원되기 전에는 각 OS 마다 사용할 수 있는 방법이 달랐다.windows에서는 WIN32 라는 라이브러리에서 지원하는 API를 사용해서 프로그래밍 해야했고, Linux는 pthread API를 사용해서 프로그래밍 했다. 현재는 C++11 에 공개된 라이브러리를 이용하면 된다.  thread 를 지원하는 방법은 각 OS 마다 달랐다.먼저 windows 에서 쓰레드를 어떻게 지원했냐 하면windows 에서 쓰레드는 프로세스를 구성하는 원소이다.모든 프로세스는 시작 시 한 개의 쓰레드를 갖고 실행된다.운영체제가 직접 쓰레드를 스케줄링.멀티 CPU(또는 core)라면 여러..

멀티쓰레드 프로그래밍 소개

오늘날의 컴퓨터는 코어 수에 따라서 직렬 컴퓨터와 병렬 컴퓨터 두 종류로 나눌 수 있다. 직렬 컴퓨터는 Serial Computer라고 하고, Single Core 컴퓨터라고도 한다.하나의 CPU(또는 Core)만을 갖는 컴퓨터로 듀얼 코어가 대중화되기 이전의 대부분의 컴퓨터를 가리킨다.학사 과정에서 배우는 대부분의 컴퓨터공학 지식들은 (자료구조 및 알고리즘) 싱글 코어 컴퓨터를 가정하고 있다.  병렬 컴퓨터는 Parallel Computer 라고 한다.여러 개의 CPU(또는 Core)가 명령을 실행하는 컴퓨터로 직렬 컴퓨터의 속도 제한을 극복하기 위해 제작되었다. 현재 우리가 작성하는 프로그램이 실행되는 컴퓨터이다.  병렬 컴퓨터병렬 컴퓨터는 여러 개의 작업을 보다 더 빨리 실행하기 위해서 ... 는 ..

백준 단계별로 풀어보기 (6)

https://www.acmicpc.net/problem/2508325083번 새싹 나의 풀이#include int main(){ std::cout 문자열 사이의 특수 문자들에 유의하여 문자열을 출력한다.https://www.acmicpc.net/problem/30033003번 킹, 퀸, 룩, 비숍, 나이트, 폰 나의 풀이#include #include using namespace std;int main(){ // 킹, 퀸, 룩, 비숍, 나이트, 폰 개수 // 1, 1, 2, 2, 2, 8 이 정상 vector v{ 1, 1, 2, 2, 2, 8 }; vector iv; int a; while (cin >> a) iv.push_back(a); for (int i = 0; i 원래 필요한 개수를 킹, 퀸..

코테 2024.09.25

백준 단계별로 풀어보기 (5) - 문자열

https://www.acmicpc.net/problem/2786627866번 문자와 문자열 나의 풀이#include #include using namespace std;int main(){ string str; cin >> str; int a; cin >> a; cout 단어와 정수가 주어졌을 때, 주어진 단어의 주어진 정수 번째 글자를 출력하는 프로그램이다.string 객체는 [] operator 를 지원하기 때문에 string에 단어를 입력하고, []를 통해서 원하는 글자에 접근했다.https://www.acmicpc.net/problem/27432743번 단어 길이 재기 나의 풀이#include #include int main(){ std::string str; std::cin >> str; st..

코테 2024.09.09

백준 단계별로 풀어보기 (4)

1차원 배열을 사용하는 문제이다. 대부분의 문제에서 std::vector를 사용해서 매우 편하게 풀 수 있었다. https://www.acmicpc.net/problem/1080710807번 개수 세기 나의 풀이#include #include #include using namespace std;int main(){ vector v; v.reserve(100); int n; cin >> n; for (int i = 0; i > a; v.push_back(a); } int key; cin >> key; auto a = v.begin(); int cnt{ 0 }; while (true) { a = find(a, v.end(), key); if (a == v.end()) break; ++cnt; ++a;..

코테 2024.09.06

백준 단계별로 풀어보기 (3)

이번 단계는 반복문이다. 반복을 알맞게 수행하면서도 읽기 쉬운 코드를 만드는 것이 관건이라고 생각한다. https://www.acmicpc.net/problem/27392739번 구구단 나의 풀이#include using namespace std;int main(){ int N; cin >> N; for (int i = 1; i https://www.acmicpc.net/problem/1095010950번 A+B - 3 나의 풀이#include using namespace std;int main(){ int N; cin >> N; for (int i = 0; i > A >> B; cout https://www.acmicpc.net/problem/83938393번 합 나의 풀이#include using ..

코테 2024.09.02

백준 단계별로 풀어보기 (2)

https://www.acmicpc.net/problem/13301330번 두 수 비교하기 나의 풀이 #include int main(){ int A, B; std::cin >> A >> B; if (A > B) std::cout "; else if (A https://www.acmicpc.net/problem/94989498번 시험 성적 나의 풀이#include using namespace std;int main(){ int score; cin >> score; if (score >= 90) { cout = 80) { cout = 70) { cout = 60){ cout https://www.acmicpc.net/problem/27532753번 윤년 나의 풀이#include using name..

코테 2024.08.31

백준 단계별로 풀어보기 (1)

백준의 단계별로 풀어보기 문제들은 코테 입문하기 전에 기본 C++ 문법 다지기 매우 좋은 문제들이라고 생각한다.  (필자는 C++로 풀었음)STL 복습 및 새로운 알고리즘 찾고 배우는데에도 매우 도움이 되고있다.간단한 문제이지만 알고리즘을 간결하게 짜는건 다른 문제라는 생각이 든다.기초를 다지면서 코테를 풀기 위해서 필요한 몇 지식들을 자연스럽게 습득할 수 있다는 점이 좋았다!아래는 내가 제시한 해답이다. (문제의 내용은 따로 기재하지 않았다.)https://www.acmicpc.net/problem/25572557번 Hello World나의 풀이#include int main(){ std::cout  https://www.acmicpc.net/problem/10001000번  A+B 나의 풀이#incl..

코테 2024.08.30

VM workstation player 다운로드 / Fedora Linux Workstation 다운로드

VM workstation player 다운로드① https://www.vmware.com/ 접속 후 Products 클릭 Introducing VMware Cross-Cloud ServicesDiscover how VMware Cross-Cloud services give organizations freedom and control without trade-offs.www.vmware.com② 사진 순서대로 클릭Workstation Player 클릭* 무료 버전Download For Free 클릭go to download 클릭Download Now 클릭③ 다운로드 시작설치 파일 클릭설치 시작설치 완료Fedora Linux Workstation 다운로드① https://fedoraproject.org/k..

[혼공컴운] 후기

혼공컴운 완주~~!!!! 내가 이걸 해내다니... 어안이 벙벙해... 사실 첨 시작할땐 혼공단 공부랑 c언어 복습이랑 선형대수학이랑 같이 병행하려고 했음 ㅋ 근데 하다보니... 병행 생각은 싹 들어갔음ㅋ 어림도 없지......ㅜㅜ 본론으로 들어가서.. 아쉬웠던 점 첫번째로 아쉬웠던 점. 컴퓨터 구조 파트를 할 때는 막히는게 하나 없이 술술 진행됐었다. 근데 운영체제 파트를 시작하면서 이해하는데 시간이 걸리기 시작했다. 그러면서 매주 과제를 업로드하는데 시간이 촉박해지면서 전주 복습이 조금 미흡했었다. 복습이 미흡해져서 나중에 이게 무슨 내용인지 까먹어서 책을 다시 읽어봐야했던게 좀 아쉬웠다... 운영체제 파트는 시간내서 다시 복습을 제대로 해야할 것 같다! 두번째로 아쉬웠던 점. 분명.. 한주 끝나면 담..

etc 2023.08.22