난해하게 품
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> numbers, string direction) {
int leng = numbers.size();
vector<int> answer(leng);
if ("right" == direction)
{
int i = leng + 1;
while (--i)
{
answer[i % leng] = numbers[i - 1];
}
}
else
{
int i = leng;
while (--i)
{
answer[i - 1] = numbers[i];
}
answer[leng - 1] = numbers[i];
}
return answer;
}
- rotate()
이렇게 좋은게 있었다니.
std::rotate(first, middle, last) //인자값: 반복자
[first, last) 범위의 요소들을 회전시켜 middle 위치의 요소가 새로운 firest가 된다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> numbers, string direction) {
int n = numbers.size();
vector<int> answer = numbers;
if (direction == "right") {
rotate(answer.begin(), answer.begin() + n - 1, answer.end());
} else if (direction == "left") {
rotate(answer.begin(), answer.begin() + 1, answer.end());
}
return answer;
}
#include <iostream>
int main() {
vector<int> numbers = {1, 2, 3, 4, 5};
string direction = "right";
vector<int> result = solution(numbers, direction);
for (int num : result) {
cout << num << " ";
}
cout << endl; // 출력: 5 1 2 3 4
return 0;
}
'학습(0) > C++ 문제풀이' 카테고리의 다른 글
프로.입문.합성수 찾기 (0) | 2025.02.23 |
---|---|
시간 복잡도 활용 (0) | 2025.02.23 |
프로.입문.2차원 만들기, 2차원 배열 선언 (0) | 2025.02.19 |
프로.입문.구슬을 나누는 경우의 수, 조합 (0) | 2025.02.18 |
프로.입문.모스부호1, istringstream객체 (0) | 2025.02.18 |