아래 모든 문제들은 프로그래머스에서 제공 되는 문제를 이용하였습니다, 감사합니다.
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
int answer = 0;
answer = stoi(s);
return answer;
}
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
이때, a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> a, vector<int> b) {
int answer = 0;
for (int i = 0; i < a.size(); i++)
{
answer += a[i] * b[i];
}
return answer;
}
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
int j = 0;
for (int i = 0; i < s.size(); i++)
{
if (isalpha(s[i]))
{
if(j % 2 == 0)
s[i] = toupper(s[i]);
else if(j % 2 == 1)
s[i] = tolower(s[i]);
j++;
}
else
j = 0;
}
return answer = s;
}
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(long long n) {
vector<int> answer;
string save;
save = to_string(n);
for(int i = 0; i < save.size(); i++)
{
answer.push_back(save[save.size() - i - 1] - '0');
}
return answer;
}
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
long long solution(long long n) {
long long answer = -1;
for (long long i = 1; i * i <= n; i++)
{
if (i * i == n)
answer = (i + 1) * (i + 1);
}
// if (sqrt(n) == floor(sqrt(n)))
// {
// answer = (sqrt(n) + 1) * (sqrt(n) + 1);
// }
return answer;
}
정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
#include <string>
#include <vector>
using namespace std;
string solution(int num) {
string answer = "Even";
if (num % 2 == 1)
answer = "Odd";
return answer;
}
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, int m) {
vector<int> answer;
for(int i = n < m ? m : n; 1 <= i; i--)
{
if(n % i == 0 && m % i == 0)
{
answer.push_back(i);
break;
}
}
answer.push_back(n * m / answer[0]);
return answer;
}
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
#include <string>
#include <vector>
using namespace std;
double solution(vector<int> arr) {
double answer = 0;
for (int i = 0; i < arr.size(); i++)
{
answer += arr[i];
}
return answer / arr.size();
}
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
#include <string>
#include <vector>
using namespace std;
string solution(string phone_number) {
string answer = phone_number;
for (int i = 0; i < phone_number.size() - 4; i++)
answer[i] = '*';
return answer;
}
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
#include <string>
#include <vector>
using namespace std;
vector<long long> solution(int x, int n) {
vector<long long> answer;
if(n > 0)
answer.push_back(x);
for (int i = 1; i < n; i++)
{
answer.push_back(answer[i - 1] + x);
}
return answer;
}