본문 바로가기

분류 전체보기337

싱글 스레드, 멀티스레드 cpu 를 프로세서, 연속하여 실행중인 프로그램을 프로세스라고 하며 하나의 코어를 가진 cpu가 작업할 수 있는 프로그램은 한 번에 하나 뿐이다 프로그램을 실행하는 작업대를 스레드라고 할 수 있겠다 하지만 동시에 여러 프로그램을 실행 시켜야 할 일이 많으므로 작업대를 병렬 처리하여 동시에 처리하곤 하는데 하나의 작업대에서 선형적으로 이어나가는 것이 순차 실행 - 싱글 스레드 여러개의 작업대에서 병렬적으로 풀어나가는 것이 병렬 실행 - 멀티 스레드 라고 한다 그림으로 나타내면 아래와 같다 하지만 병렬로 처리하는 멀티 스레드의 경우 말은 병렬이지만 실제로는 하나의 cpu가 이거하고 저거하고 정신없이 움직이며 1인 다역을 소화하고 있는것인데... 이를 context switching 컨텍스드 스위칭 이라고 한.. 2022. 7. 26.
[백준 1269/c++] 대칭 차집합 처음에 map 을 이용해서 ++ -- 로 카운트 했더니 테스트 케이스에 같은 수가 중복이 있었는지 에러가 떴다 중복일 경우도 차집합에서 한번에 다 사라지게 해야하므로 중복 자체를 없애기 위해 set 에 넣어서 find 로 카운트, 카운트 한 수는 양 집합 모두에 있는 것이므로, 두 집합을 더한 후 카운트x2 로 양쪽에 있는 만큼 빼주면 차집합의 원소 개수 완성이다 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net #include using .. 2022. 7. 25.
[백준 1120/c++] 문자열 문자열의 양옆에 더미를 붙여서 경우의 수를 모두 만들고 그 경우를 모두 비교하여 차이를 벡터에 넣고 벡터에서 가장 작은 수를 구하고 더미의 수만큼 빼면 되는 문제였다 https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net #include using namespace std; int main(){ int diflen; int cnt = 0; int ans; vector v; string a, b, temp; str.. 2022. 7. 24.
for 문 연산 속도를 조금이라도 더 빠르게 하는 법 몇 가지 for문을 사용할때의 팁을 찾았다 정리해보자 i++ 보다 i--가 속도가 더 빠르다 for 문을 사용할 때 지금까지 난 그냥 i++을 주로 사용했는데 for 문에서 --가 성능 상 더 빠르다는 말을 들어서 여기저기 찾아보았다 결과부터 말하자면 i++보다 i--가 더 빠르다 ( 단, i >0 처럼 0 까지 --할때만 한정) 정확히는 i--가 더 빠르다기보다 i++을 하건 i -= 4를 하건 중간의 비교식에서 우항이 0이냐 아니냐가 중요하다 비교식에서 우항이 0이면 evaluate - 평가 를 하고 // 그거 이거냐? 0은 false 이므로 결과 과정이 더욱 짧다 우항이 0이 아니면 compare - 비교 를 하기 때문이다 // 그거보다 크냐/작냐 크기를 비교해야 하므로 더 걸린다 **그러니 조건의.. 2022. 7. 24.