C++ 문제 풀이/프로그래머스
-
[프로그래머스/C++] 내적C++ 문제 풀이/프로그래머스 2024. 1. 14. 17:40
1. 문제 설명 2. Solution #include #include using namespace std; int solution(vector a, vector b) { int answer = 0; for(int i = 0;i < a.size();i++) { answer += a[i] * b[i]; } return answer; } 이 문제는 그냥 벡터의 모든 요소들을 내적하면 되는 아주 간단한 문제이고 곱해서 더해주어 간단하게 해결하였다. 하지만 뭔가 내적을 해주는 라이브러리가 있을 것 같았고 다른 사람의 풀이를 보다가 찾았다. #include #include using namespace std; int solution(vector a, vector b) { return inner_product(a.b..
-
[프로그래머스/C++] 제일 작은 수 제거하기C++ 문제 풀이/프로그래머스 2024. 1. 14. 17:35
1. 문제 설명 2. Solution #include #include #include using namespace std; vector solution(vector arr) { int min_idx = min_element(arr.begin(), arr.end()) - arr.begin(); arr.erase(arr.begin() + min_idx); if(arr.empty()) arr.push_back(-1); return arr; } 이 문제는 제일 작은 수를 제거하는 것이다. 처음에는 arr를 sort 시킨 후 가장 처음의 원소가 작은 수 이므로 해당 원소를 제거하는 쪽으로 생각을 했는데 아무리 생각을 해도 좀 더 효율적인 방법이 있을 것 같아서 구글링을 하던 결과 algorithm 헤더파일의 라이..
-
[프로그래머스/C++] 없는 숫자 더하기C++ 문제 풀이/프로그래머스 2024. 1. 14. 17:25
1. 문제 설명 2. Solution #include #include #include using namespace std; int solution(vector numbers) { int answer = 0; for(int i = 0;i < 10;i++) { if(find(numbers.begin(), numbers.end(), i) == numbers.end()) answer += i; } return answer; } 본 문제는 0~9까지의 숫자 중 일부가 들어있는 정수 배열에서 없는 수를 모두 더한 수를 return 하는 것인데 본인은 find 함수를 통해서 for문에서 i 숫자를 가지고 있지 않은 수를 더해주었다. 하지만 다른 사람들의 풀이를 보다가 굉장히 신기한 풀이를 발견하였는데 #include..
-
[프로그래머스/C++] 콜라츠 추측C++ 문제 풀이/프로그래머스 2024. 1. 14. 17:19
1. 문제 설명 2. Solution #include #include using namespace std; int solution(int num) { int answer = 0; long long ln = num; while(ln != 1) { if(answer == 500){ answer = -1; break; } ln % 2 == 0 ? ln /= 2 : ln = ln * 3 + 1; answer++; } return answer; } 이 문제는 겉으로 보면 굉장히 쉬운문제이다. 하지만 치명적인 함정이 숨어있었다. 처음에 이 문제를 풀었을 때 코드 실행은 되지만 채점에서 몇가지 케이스에서 실패가 나왔다. 그 이유는 홀수의 경우 3을 곱하고 1을 더한다. 제한사항에서 num은 8,000,000미만인 정..
-
[프로그래머스/C++] 짝수와 홀수C++ 문제 풀이/프로그래머스 2023. 7. 4. 16:46
문제 이름 : 짝수와 홀수 1. 문제 설명 2. Solution #include using namespace std; string solution(int num) { string answer = ""; if(num%2==0) answer = "Even"; else answer = "Odd"; return answer; } 이 문제는 짝수와 홀수를 판별하는 매우 간단한 문제이다. 짝수와 홀수를 판별하는 방법은 매우 간단한데 2로 나눈 나머지가 0으면 짝수이고 1이면 홀수이다. 따라서 다음과 같이 각각의 경우에 Even과 Odd를 할당하면 된다. GitHub - leejy811/AlgorithmStudy: 코딩 테스트 스터디 코딩 테스트 스터디. Contribute to leejy811/AlgorithmSt..
-
[프로그래머스/C++] 자릿수 더하기C++ 문제 풀이/프로그래머스 2023. 7. 4. 14:39
문제 이름 : 자릿수 더하기 1. 문제 설명 2. Solution #include int solution(int n) { int answer = 0, i = 1; while(true){ answer += n % (int)pow(10, i) / (int)pow(10, i-1); if(n==n % (int)pow(10, i)) break; i++; } return answer; } 내가 이 문제를 풀었던 방법은 조금 복잡한 방법이다. 우선 조건에 대한 반복문을 실행하기 위해 while 문을 활용했다. 그리고 n을 10의 i 제곱의 나머지를 구하면 현재 내가 구하길 원하는 자릿수까지의 숫자가 나온다. 그리고 10의 i-1제곱으로 나눠주면 내가 원하는 자릿수만 남기고 그 뒤의 숫자들은 날릴 수 있다. 예를 들면..