반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120844
🐍파이썬
def solution(numbers, direction):
if direction == "right":
numbers.insert(0, numbers.pop())
else:
numbers.append(numbers.pop(0))
return numbers
1️⃣ direction이 right인 경우, 0번째 인덱스에 numbers.pop() 데이터를 삽입
2️⃣ direction이 left인 경우, 배열의 마지막에 numbers.pop(0) 데이터를 삽입
다른 풀이 방법
def solution(numbers, direction):
return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]
배열 슬라이싱 사용
from collections import deque
def solution(numbers, direction):
numbers = deque(numbers)
if direction == 'right':
numbers.rotate(1)
else:
numbers.rotate(-1)
return list(numbers)
❓ rotate()
- deque 자료구조에서 사용할 수 있는 함수
- 사용 예시
- rotate(1): 오른쪽으로 한 칸 이동
- rotate(-3): 왼쪽으로 세 칸 이동
🐥자바스크립트
function solution(numbers, direction) {
if (direction === "right"){
numbers.splice(0, 0, numbers.pop());
} else {
numbers.push(numbers.shift());
}
return numbers;
}
❓ 배열에 요소를 추가/제거하는 메서드
- 🛑 원본 배열의 변형 발생
- push() : 배열의 끝에 하나 이상의 새로운 요소를 추가한 후, 배열의 새로운 길이를 반환
- pop() : 배열의 마지막 요소를 제거하고, 그 요소를 반환
- unshift() : 배열의 첫 번째 자리에 새로운 요소를 추가하고, 배열의 새로운 길이를 반환
- shift() : 배열의 첫 번째 요소를 제거하고, 제거된 요소를 반환
다른 풀이 방법
function solution(numbers, direction) {
return direction === "right"
? [numbers[numbers.length - 1], ...numbers.slice(0, numbers.length - 1)]
: [...numbers.slice(1), numbers[0]];
}
[...numbers, ...numbers] 로 배열을 이을 수 있다.
[numbers, numbers]의 경우 배열의 원소로 배열이 들어가 이차원 배열이 된다.
function solution(numbers, direction) {
// numbers = [1, 2, 3] 일때
console.log([numbers, numbers]); // [[1, 2, 3], [1, 2, 3]]
console.log([...numbers, ...numbers]); // [1, 2, 3, 1, 2, 3]
return 0;
}
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스 | 파이썬 / 자바스크립트] 대문자와 소문자(코딩테스트 입문/ level 0) (0) | 2023.02.25 |
---|---|
[프로그래머스 | 파이썬 / 자바스크립트] 피로도(완전탐색/ level 2) (0) | 2023.02.25 |
[프로그래머스 | 파이썬 / 자바스크립트] 다항식 더하기(코딩테스트 입문/ level 0) (0) | 2023.02.24 |
[프로그래머스 | 파이썬 / 자바스크립트] 소인수분해(코딩테스트 입문/ level 0) (0) | 2023.02.24 |
[프로그래머스 | 파이썬 / 자바스크립트] 문자 반복 출력하기(코딩테스트 입문/ level 0) (0) | 2023.02.23 |
[프로그래머스 | 파이썬 / 자바스크립트] 삼각형의 완성조건 (1)(코딩테스트 입문/ level 0) (0) | 2023.02.23 |