[프로그래머스/C++] Lv.0 배열 만들기
문제 코드 #include using namespace std; vector solution(int l, int r) { vector answer; for(int i = l; i
문제 코드 #include using namespace std; vector solution(int l, int r) { vector answer; for(int i = l; i
문제 코드 #include #include using namespace std; vector solution(int start_num, int end_num) { vector answer; for(int i = start_num; i< end_num+1; ++i) { answer.emplace_back(i); } return answer; }
비트 시프트 연산 사용: 양의 정수를 2의 거듭제곱으로 나눌 때, 비트 시프트 연산을 사용하여 최적화할 수 있습니다. 예를 들어, x >> 2는 x / 4와 동일한 결과를 얻지만 연산이 빠릅니다. int x = 16; int result = x >> 2; // 비트 시프트를 사용한 나눗셈 최적화 상수 분모 최적화: 분모가 상수인 경우, 컴파일러는 이를 상수 폴딩을 통해 최적화합니다. 예를 들어, x / 5는 컴파일러에 의해 x * 0.2로 최적화될 수 있습니다. int x = 100; int result = x / 5; // 컴파일러가 상수 폴딩을 수행하여 최적화 계산 순서 변경: 경우에 따라 나눗셈을 피하기 위해 계산 순서를 변경할 수 있습니다. 예를 들어, x / 3 대신 x * (1.0 / 3)과 ..
문제 코드 #include #include #include using namespace std; vector solution(vector arr, vector queries) { vector answer = arr; for (int i = 0; i < queries.size(); ++i) { int tmp = answer[queries[i][0]]; answer[queries[i][0]] = answer[queries[i][1]]; answer[queries[i][1]] = tmp; } return answer; } // 다른 사람 풀이 /* vector solution(vector arr, vector queries) { for (const auto& q : queries) { swap(arr[q[0]..
문제 코드 #include #include using namespace std; string solution(vector numLog) { string answer = ""; int currentNum = 0; int prevNum = 0; int result = 0; for (int i = 0; i < numLog.size(); ++i) { if (i == 0) { currentNum = numLog[i]; prevNum = numLog[i]; } else { prevNum = numLog[i - 1]; } currentNum = numLog[i]; result = currentNum - prevNum; switch (result) { case 1:answer += "w"; break; case -1:..
문제 코드 #include #include using namespace std; int solution(int n, string control) { int answer = n; for (const char c : control) { if (c == 'w') { answer += 1; } if (c == 's') { answer -= 1; } if (c == 'd') { answer += 10; } if (c == 'a') { answer -= 10; } } return answer; }