아래 모든 문제들은 프로그래머스에서 제공 되는 문제를 이용하였습니다, 감사합니다.
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> prices) {
vector<int> answer;
int sum = 0;
for (int i = 0; i < prices.size(); i++)
{
sum = 0;
for (int j = i + 1; j < prices.size(); j++)
{
if (prices[i] <= prices[j])
{
sum++;
}
else
{
sum++;
break;
}
}
answer.push_back(sum);
}
return answer;
}
정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(int n) {
vector<int> answer;
vector<vector<int>> tmp;
int count = 0;
for (int i = 0; i < n; i++)
{
answer.push_back(0);
answer[0] = i + 1;
tmp.push_back(answer);
}
for (int i = 0; i < n; i++)
{
tmp[n - 1][i] = n + i;
}
int x= n - 1;
int y = n - 1;
count = tmp[n - 1][n - 1];
for (int i = 0; i < n - 2; i++)
{
if (i % 3 == 0)
{
while (tmp[x - 1][y - 1] == 0)
{
x--;
y--;
tmp[x][y] = ++count;
}
}
else if(i % 3 == 1)
{
while(tmp[x + 1][y] == 0)
{
x++;
tmp[x][y] = ++count;
}
}
else if(i % 3 == 2)
{
while(tmp[x][y + 1] == 0)
{
y++;
tmp[x][y] = ++count;
}
}
}
answer.clear();
for(int i = 0; i < tmp.size(); i++)
{
for (int j = 0; j < tmp[i].size(); j++)
answer.push_back(tmp[i][j]);
}
return answer;
}
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.
각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.
#include <string>
#include <vector>
#include <set>
#include <iostream>
using namespace std;
set<int> save;
void swap(char &a, char &b)
{
char temp = a;
a = b;
b = temp;
}
void permutation(string data, int depth, int n, int r)
{
string st = "";
if (depth == r)
{
for(int i = 0; i < r; i++)
st += data[i];
save.insert(stoi(st));
return;
}
for (int i = depth; i < n; i++)
{
swap(data[depth], data[i]);
permutation(data, depth + 1, n , r);
swap(data[depth], data[i]);
}
}
int solution(string numbers) {
int answer = 0;
int flag = 0;
for (int i = 1; i <= numbers.size(); i++)
{
// permutation(numbers, 0, numbers.size(), i);
}
set<int>::iterator iter;
for(iter = save.begin(); iter != save.end(); iter++)
{
flag = 0;
for (int i = 2; i < (*iter); i++)
{
if ((*iter) % i == 0)
{
flag = 1;
break;
}
}
if (flag == 0 && *iter != 1 && *iter != 0)
{
answer += 1;
}
}
return answer;
}