[프로그래머스 | 파이썬 / 자바스크립트] 배열 회전시키기(코딩테스트 입문/ level 0)

2023. 2. 24. 17:39·Problem Solving/프로그래머스
반응형
문제

https://school.programmers.co.kr/learn/courses/30/lessons/120844

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🐍파이썬
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
'Problem Solving/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 | 파이썬 / 자바스크립트] 피로도(완전탐색/ level 2)
  • [프로그래머스 | 파이썬 / 자바스크립트] 다항식 더하기(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 소인수분해(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 문자 반복 출력하기(코딩테스트 입문/ level 0)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (505)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (108)
        • HTML | CSS (5)
        • JavaScript | TypeScript (41)
        • React (25)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    bfs
    SWEA
    spring boot
    백준
    AWS
    웹사이트
    타입스크립트
    클론 프로젝트
    알고리즘
    자바
    공식문서
    뉴렉처
    Jiraynor Programming
    블로그 제작
    파이썬
    프로그래머스
    포트폴리오
    프로젝트
    리액트
    ZeroCho
    구현
    d3
    Til
    강의내용정리
    Next.js
    React
    mysql
    플러터
    컴퓨터네트워크
    자바스크립트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[프로그래머스 | 파이썬 / 자바스크립트] 배열 회전시키기(코딩테스트 입문/ level 0)
상단으로

티스토리툴바