문제설명
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 3 ≤ numbers의 길이 ≤ 20
- direction은 "left" 와 "right" 둘 중 하나입니다.
입출력 예
풀이
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> numbers, string direction) {
if (direction == "right")
{
numbers.insert(numbers.begin(), numbers.back());
numbers.pop_back();
}
else
{
numbers.push_back(numbers.front());
numbers.erase(numbers.begin());
}
return numbers;
}
로직 설명
- direction 입력값이 right일 때
vector의 마지막 값을 첫번째로 보냄
배열의 상황 => { 3, 1, 2, 3 } 이므로
pop_back을 사용해 마지막 값을 지워줌
- left일 때
push_back을 사용하여 첫번째 값을 마지막으로 보냄배열의 상황 => { 4, 455, 6, 4, -1, 45, 6, 4 } 이므로
erase를 사용해 첫번째 값을 지워줌
'알고리즘 문제풀이' 카테고리의 다른 글
[백준][C++] 회사에 있는 사람 (0) | 2023.11.01 |
---|---|
[NYPC문제][C++] 메이플스토리 새로운 직업 고르기 (0) | 2023.10.23 |