알고리즘/프로그래머스
[프로그래머스] 주사위의 개수
CooNiHong
2022. 12. 5. 17:11
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/120844
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 3 ≤ numbers의 길이 ≤ 20
- direction은 "left" 와 "right" 둘 중 하나입니다.
입출력 예
numbers | direction | result |
[1, 2, 3] | "right" | [3, 1, 2] |
[4, 455, 6, 4, -1, 45, 6] | "left" | [455, 6, 4, -1, 45, 6, 4] |
입출력 예 설명
입출력 예 #1
- numbers 가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.
입출력 예 #2
- numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.
Java
import java.util.ArrayList;
class Solution {
public int[] solution(int[] numbers, String direction) {
ArrayList<Integer> numArray = new ArrayList<>();
for(int i : numbers) {
numArray.add(i);
}
switch(direction) {
case "right":
numArray.remove(numArray.size() - 1);
numArray.add(0, numbers[numbers.length - 1]);
break;
case "left":
numArray.remove(0);
numArray.add(numbers[0]);
break;
}
int[] answer = new int[numArray.size()];
for(int i = 0; i < numArray.size(); i++) {
answer[i] = numArray.get(i);
}
return answer;
}
}
JavaScript
function solution(numbers, direction) {
let answer = [];
let temp1 = numbers[0];
let temp2 = numbers[numbers.length - 1];
switch(direction) {
case "right":
numbers.unshift(temp2);
numbers.pop();
break;
case "left":
numbers.shift();
numbers.push(temp1);
break;
}
return numbers;
}
728x90